目录
Vim是一个功能强大的全屏幕文本编辑器, 是Linux/UNIX上最常用的文本编辑器, 它的作用是建立、编辑、显示文本文件。
Vim只有命令,没有菜单。
Vim工作模式
进入:进入Vim工作模式,通过 vim + filename 创建编辑文本。创建后默认插入模式。ESC键退出插入模式。
编辑模式:插入模式退出后,输入 “ :” 进入编辑模式,之后的每一次输入都被视为命令。e.g. :set nu 添加行号。
退出:编辑模式下输入 :wq 退出Vim工作模式。
任意输入i/a/o进入插入模式。
常用命令
插入命令
i:在当前光标所在字符前插入。
I:在当前光标所在行的行首插入。
a:在当前光标所在字符后插入。
A:在光标所在行的行尾插入。
o:在光标下(当前行的下一行)插入新的一行。
O:在光标上(当前行的上一行)插入新的一行。
定位命令
如果在打开某个文件后系统提示第200行有错误,那么怎么找到第200行呢?可以set nu加上行号,如果修改完第200行后想返回首行,可以输入gg回首行。按一个大写的G定位到末行。
退出插入模式后,输入一个数字,虽然终端上不显示,不过再输入一个G会定位到某一行,但这种方法并不直观。更直观的是使用:+数字 跳转到某行。
退出插入模式后$可以到行尾,0回到行首。
h:左移一个字符
j:下一行
k:上一行
l:右移一个字符
$:移动到行尾
0:移动到行首
H:移至屏幕上方
M:移至屏幕中间
L:移至屏幕下方
:set nu :设置显示文本的行数
:set nonu:取消显示文本的行数
gg:移到文件的行首
G:移到最后一行
:n:移到文件的第n行(与nG的功能相同)
删除命令
x 删除光标下的字符 ("dl" 的缩写)
X 删除光标前的字符 ("dh" 的缩写)
dd 删除光标所在行,ndd删除n行
nx 删除光标所在处后n个字符
D 从当前位置删除到行尾 ("d$" 的缩写)
dw 从当前位置删除到下一个单词开头
db 从当前位置删除到前一个单词的开头
diw 删除光标上的单词 (不包括空白字符)
daw 删除光标上的单词 (包括空白字符)
dG 删除到文件末
dgg 删除到文件首
剪切和复制命令
yy 复制当前行
nyy 复制当前行一下n行
dd 剪切当前行
ndd 剪切当前行以下n行
p、P 粘贴在当前光标所在行下或行上
替换和取消命令
有时我们要更改某一个字符,按照之前的方法是进入插入模式删除字符,然后输入字符,再退出插入模式。但这种方法比较繁琐。
也可以按 r 来修改当前光标所在字符;按 R 从当前光标所在位置开始往后修改,按esc结束。
u 取消上一步操作。
搜索
/string 搜索指定字符串(但区分大小写)类似于less命令(n继续)
搜索时忽略大小写:set ic
:%s 全文替换
:起始行,终止行s /要替换的字符串/替换的新字符串/g 在一定范围内替换指定字符串
/c g:不询问 c:询问
保存
:w 保存修改
:w new_filename 另存为指定文件
:wq 保存并退出
ZZ 保存并退出
:q!不保存退出
:wq!保存并退出(文件所有者及root用户可使用)