临时显示行号,输入 :set number
或者 :set nu
即可。
永久显示行号,可以如下操作:
- 编辑:
vim ~/.vimrc
- 输入
G
定位到尾行 - 输入
$
定位到尾行末尾 - 输入
i
或者a
进入编辑模式 - 最后一行输入
set nu
即可
下次使用 vim
打开文件就会自动显示行号。
当然,有时候需要关闭行号,此时输入 :set nonu
即可。
- 回到文件开始位置:
gg
- 回到文件末尾行:
G
- 回到行首:
^
或者0
- 回到行尾:
$
- 回到第 n 行:
:n
有时候需要搜索某个词,进行修改,此时需要定位到某个词,可以采用搜索。
搜索使用 /text
,按 n
键查找下一个,N
键查找上一个,找到后使用 i
可以进入编辑模式。
如果不想输入该单词,光标移动到单词上(还是先需要定位到这个词啊),可以输入 *
或者 #
开启快速查找。
:x
: 写入文件并退出,仅当文件修改时才写入,否则不会更新文件修改时间:wq
: 写入文件并推出,不管文件是否修改,都会更新文件修改时间:q
: 不保存退出,如果有修改,会提示E37: No write since last change (add ! to override)
:q!
: 强制不保存退出
撤销上一个操作:u
。
有时候编辑文件乱了套,想重新开始编辑,可以输入 :e!
。
删除当前行:dd
。
删除 m 到 n 行: m,nd
(可以显示行号,明确知道行号一切就好办了)。
内部使用了 sed
命令进行替换。
- 替换文件所有行匹配:
%s/old/new
,等同于%s/old/new/g
- 替换当前行第一个匹配:
s/old/new
- 替换当前行所有匹配:
s/old/new/g
- 第 m 行和 n 行前添加 4 个空格:
:m,n s/^/ /g
- 删除所有行尾空格:
%s/\s\+$//
- 去掉所有注释:
%s!\s*//.*!!
- 将所有不包含字符(空格也不包含)的空行删除:
g/^/s*$/d
输入 :
,然后按上下箭头可以选择历史执行过的命令,很是方便快捷。