Linux vim的使用


一直不熟练,只会很水的操作。
三种模式
- command mode
- insert mode
- command-line mode
command mode就是刚进vi的默认模式,不能插入内容,但是可以做一些查找替换、删除的操作的,insert mode用来插入、删除内容,command-line mode一般用来保存退出
command mode → insert mode 按下i I o O a A r R,其中r R是替换,其他都是插入
insert mode → command mode 按下Esc
command mode → command line mode 按下: / ?
command line mode → command mode 按下Esc
insert mode的操作
insert mode很简单,就是按字符进行插入或者删除,然后按Esc进入到command mode
command mode的操作
- :w: 保存文件,一般在新建文件的时候
- :w!:文件属性为只读时强制保存,但还要取决于对该文件的权限
- :q:退出
- :q!:强制退出,即便已经修改过
- :wq:保存并退出
- :wq!:强制保存并退出
- ZZ:如果文件没有修改就退出,如果已经修改过,则保存后退出
- :w [filename]:另存为新文件
- :r [filename]:将另一个文件内容加到光标所在行后面
- :n1, n2 w [filename]:将n1到n2的内容保存为filename这个文件
- :! command:暂时退出vi然后执行command命令的显示结果。:! ls /就是在vi当中查看/下ls输出的文件信息


- set nu:设置行号


:set nonu:取消行号
command mode的操作
光标移动
h j k l 或者上下左右箭头:移动一个字符的光标
Ctrl + f:屏幕向下移动一页,相当于按下Page Down
Ctrl + b:屏幕向上移动一页,相当于按下Page Up
Ctrl + d:屏幕向下移动半页
Ctrl + u:屏幕向上移动半页
+ :光标移动到非空格符的下一行
- :光标移动到非空格符的上一行
n<space>:按下数字n再按空格键,光标向右移动这一行的n个字符
0或<Home>:移动到这一行开头
$或<End>:移动到这一行末尾
H:光标移动到这个屏幕最上方那一行的第一个字符
M:光标移动到这个屏幕中央那一行的第一个字符
L:光标移动到这个屏幕最下方一行的第一个字符
G:光标移动到这个文件的最后一行(常用)
nG:移动到这个文件的第n行
gg:移动到这个文件的第一行,相当于1G
n<Enter>:光标向下移动n行(常用)
查找与替换
/word:从光标下方寻找word这个字符串
?word:从光标上方寻找word这个字符串
n:英文按键n,不是数字,重复前一个查找的操作
N:反向进行前一个查找操作,比如前一个是从光标上方查找的,这一次就是从光标下方查找
删除复制粘贴
x:向后删除一个字符,相当于Del
X:向前删除一个字符,相当于Backspace
nx:n是数字,连续向后删除n个字符,比如10x就是向后删除10个字符
dd:删除(剪切)光标所在的一整行
ndd:n是数字,删除(剪切)光标所在的向下n行
d1G:删除(剪切)光标所在的第一行的内容
dG:删除(剪切)光标所在到最后一行的内容
d0:删除(剪切)光标所在处到该行的最前面一个字符
yy:复制光标所在的那一行(常用)
nyy:复制光标所在向下n行
y1G:复制光标所在行到第一行的内容
yG:复制光标所在行到最后一行的内容
y0:复制光标所在的那个字符到该行行首的内容
y$:复制光标所在的那个字符到该行行尾的内容
p:将已复制的内容在光标下一行粘贴
P:将已复制的内容在光标上一行粘贴
J:将光标所在行与下一行的数据结合成同一行
c:重复删除多个内容
u:恢复前一个操作(Ctrl + Z?)
Ctrl + r:重做上一个操作
. :重复前一个操作