vim:模式化的编辑器。分为:输入模式(插入模式);编辑模式(命令模式);末行模式。
输入模式和编辑模式之间可以相互的转换,编辑模式和末行模式可以相互的转换,而末行模式转换
到输入模式不能直接转换,只能先转换到编辑模式在转换到输入模式。
输入模式转换到编辑模式使用:ESC
编辑模式转换到输入模式使用:i或o或a或c
编辑模式转换到末行模式使用::
末行模式转换到编辑模式使用:ESC
使用vim编辑文本:
vim FILE
vim +n FILE 打开文件的前n行
从编辑模式转换到输入模式可以使用:
i 在当前光标所在处插入
I 在当前光标所在的行首插入
a 在当前光标后插入
A 在当前光标所在行尾
o 在光标所在行的下方打开一个新行,并且转换为输入模式
保存退出:在末行模式下
退出单个文件时:wq
退出打开的所有文件时:wqall
退出不保存:在末行模式下
没有对文本内容进行修改:q
修改了文本但是不保存:q!
退出多个文件: qall
退出多个文件并且不保存:qall!
在打开一个内容较多的文本时,光标的移动以及定位:在编辑模式下
光标的移动:
h:左 l:右 k:上 j下 在他们之间加上数字就是向某个方向移动多少位如:5h 即
光标向左移动5位
w:移动到下一个单词的首部
e:移动到当前光标所在单词的词尾
b:移动到当前光标所在单词的词首
(:移动到前一句句首
):移动到后一句句首
{:移动到前一段的段首
}:移动到后一段的段位
$:跳转到光标所在行的行尾
G:跳转到最后一行,前面可以跟数字表示跳转到第几行如:5G 跳转到第五行
1G:表示跳转到首部
在打开多个文件时并且将这多个文件分屏显示时,在这几个屏幕之间跳转时:在编辑模式下
Ctrl+f 往下翻一屏
Ctrl+b 往上翻一屏
Ctrl+d 往下翻半屏
Ctrl+u 往上翻半屏
当打开文件对其内容进行修改时:在编辑模式下
c:修改当前光标所在的单词
cc:标识删除行,前面跟上数字表示删除几行。如在编辑模式下输入 3cc:表示删除三行
C:删除光标所在的行以后的内容
x:删除光标所在的单个字符,前面跟上数字表示删除多少个字符
X:删除光标前面的字符
dd:删除光标所在的一整行,前面跟上数字表示删除几行,从光标所在的行开始算起
r:替换光标所在的单个字符
R:替换光标所在的一整行
对于复制、剪切、粘贴:在编辑模式下
y:复制
d:剪切
p:粘贴,当复制或剪切的内容为一整行时则粘贴在当前光标所在行的下方,若不为一整行
则粘贴在当前光标所在的字符后
P:粘贴,当复制或剪切的内容为一整行时则粘贴在当前光标所在行的上方,若不为一整行
则粘贴在当前光标所在的字符前
在复制或剪切时还可以使用可视化模式命令:在编辑模式下使用
v:代表按照字符选取
V:代表安装行来选取
当打开一个内容较多的文本时,而我们要修改摸个特定的字符或段时,就用到了查找:在末行模式
下
/Keyword:查找Keyword
?Keyword:查找Keyword
在查找后需要进行修改,不需要将原有的内容删除在键入新的内容,我们可以直接使用替换命令:s
在末行模式下使用
s 参数
i:忽略大小写
g:全部替换
1,$:指定替换的范围为第一行到最后一行
.,$:当前行到最后一行
.,+8:当前到第八行
.,$-1:当前行到倒数第二行
%:全文搜索
当修改文本内容修改错误或者不想修改时,可以使用撤销命令:在编辑模式下
u:撤销最近一次的的操作
ctrl+r:撤销撤销,即撤销上一步的撤销
打开多个文件时:
prev 跳转到上一个
next 跳转到下一个
first 跳转到第一个
last 跳转到最后一个
分割窗口:
水平分割 ctrl+w s
垂直分割 ctrl+w v
切换到下个窗口 ctrl+w 方向箭头
最上面一个 ctrl+w t
最下面一个 ctrl+w b
-o 水平分割多个文件
-O 垂直分割
设定vim的工作属性:在末行模式下
显示行号: set nu
取消行号: set nonu
自动缩进: set ai(autoindent)
取消缩进: set noai
而这些的设置都是在当前的shell及其子shell下有作用,当shell结束时作用就不在存在,若要长久
的有用就可可以修改vim的配置文件
在/etc/bimrc 控制的全体用户的vim设置
在用户家目录 ~/.vimrc 控制的是用户自己的vim的设置
当两者发起相同设置的冲突时,其设置作用则依照影响范围小的设置生效