0%

Linux运维学习笔记:vim基础知识

写在前面

vim 是 vi 的升级版,号称史上最好的文本编辑器。但是,学习vim确实一个很痛苦的过程,尤其是刚开始的一个礼拜。这里整理的是vim的基本知识,主要包括:

  • 安装配置

  • 普通模式基本操作

  • 编辑模式基本操作

  • 命令模式基本操作

  • 打开保存文件

开始之前,先把vim最重要的两张图贴出来:

  • vim命令:

  • vim键位图:

安装配置

vim 安装

centOS 7安装:

1
yum install -y vim-enhanced

macOS 安装:

1
brew install vim

vim简单配置

Vim编辑环境配置,涉及/etc/vimrc~/.vimrc。前者是全局配置,而后置只针对当前用户,所以就新建一个进行修改即可。

1
2
3
4
5
6
7
8
9
10
touch ~/.vimrc //新建当前用户目录下的配置文件

vim ~/.vimrc //编辑` .vimrc`文件

//新增以下内容:
set nu // 这是设置显示行号
set showmode //设置在命令行界面最下面显示当前模式等。
set ruler // 在右下角显示光标所在的行数等信息
set autoindent // 设置每次单击Enter键后,光标移动到下一行时与上一行的起始字符对齐
syntax on // 即设置语法检测,当编辑C或者Shell脚本时,关键字会用特殊颜色显示

之后,按 esc 键,输入:wq进行保存。

普通模式基本操作

命令行格式: vim [filename]

vim 有三种模式,包括普通模式、编辑模式和命令模式。首先是普通模式:

在普通模式下,可以进行的操作包括:

移动光标

  • 使用h、l、k、j 代表左、右、上、下,如下图所示:

  • Ctrl+Bctrl+F 代表向前/向后翻页。
  • 0shift+6移动到本行行首;shift+4 移动到本行末尾。
  • gg 移动到第一行;G 移动到最后一行;nG移动到第n行(n代表数字)

删除字符或行

  • x表示向后删除一个字符;X表示向前删除一个字符;nx表示向后删除n的字符(n代表数字)

  • dd 删除光标所在行;ndd 删除光标所在行之后的n行(n代表数字)

复制粘贴字符或者行

  • yy复制光标所在行;nyy 从光标所载行开始,向下复制n行;

  • 小写 p 表示从光标所在行开始向后粘贴;大写 P 表示向前粘贴;

  • v 移动光标会选中指定文字,之后按 y 复制,按 p 粘贴;

  • u 还原上一步操作;

查看帮助文档

vim 快捷键示意图

  • 输入 :help 查看帮助文档

  • 输入 /(向下) 或者 ?(向上) 查找关键字;如果有多个匹配项,按 n 键进行切换。

进入编辑模式

快捷键 解释
i 在当前字符插入
I 在光标所在行的行首插入
a 在光标后插入
A 在光标所在行的末尾插入
o 在当前行后插入新的一行
O 在当前行前插入新的一行

vim命令模式

快捷键 解释
/word 在光标之后查找关键词,如果存在多个匹配项,按n向后搜索
?word 在光标之前查找关键词,如果存在多个匹配项,按n向前搜索
:1,$s/word1/word2/g (难点)将文档中的word1替换为word2,不加g则只替换每行的第一个word1
:m,ns/word1/word2/g (难点)将第m行和第n行之间的word1替换为word2,不加g则只替换每行的第一个word1

打开/保存/退出/改变文件

快捷键 解释
:e [path to file] 打开一个文件
:w 存盘
:saveas [path to file] 另存为 <path/to/file>
:xZZ:wq 保存并退出 (:x表示仅在需要时保存;ZZ不需要输入冒号并回车)
:X 设置密码保存并退出,使用此命令后cat 该文件会显示乱码,再次打开需输入密码
:q! 退出不保存
wq! 强制保存退出
:qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。
:bn:bp 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。

vim使用窍门

窍门一:自动跳转到文件第n行

  • vim +10 [filename] ,即进入会光标自动跳转到第10行

  • bash 命令 !$ 自动重复上一条命令。

窍门二: 如何解决代码自动缩进造成乱码

  • 方法一:命令模式,输入 :set noai nosi

  • 方法二:paste模式

1
2
:set paste 
:set nopaste

延伸阅读

-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!