vim

vim

命令

撤销重做

按键 作用
u undo (常用)
[Ctrl]+r redo (常用)
. 不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)。注意,对移动无效。

移动

可长按,达到持续移动的效果。

小幅移动
h 左移一个字符
j 下移一行
k 上移一行
l 右移一个字符

除了vim风格的移动,上下左右也能用。

此外,还可以结合数字,达到一次移动多行的效果,如,10j,向下移动10行。

单词移动
w 移动到下一个单词头
e 移动到下一个单词尾
b 移动到上一个单词头
ge 移动到上一个单词尾
大幅上下移动
[Ctrl] + [d] 屏幕『向下』移动半页
[Ctrl] + [u] 屏幕『向上』移动半页
[Ctrl] + [f] 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b] 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
大福左右移动
0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End] 移动到这一行的最后面字符处(常用)
文件头尾跳转
gg 跳转文件第一行的第一个字符
G 跳转文件最后一行的第一个字符
指定移动距离
nG n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
n<Enter> n 为数字。光标向下移动 n 行(常用)
屏幕内移动
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
其他
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行

剪切、复制粘贴

剪切
dd 剪切游标所在的那一整行(常用),用 p/P 可以粘贴。
ndd n 为数字。剪切光标所在的向下 n 行,例如 20dd 则是剪切 20 行(常用),用 p/P 可以粘贴。
d1G 剪切光标所在到第一行的所有数据
dG 剪切光标所在到最后一行的所有数据
d$ 剪切游标所在处,到该行的最后一个字符
d0 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
x, X 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
nx n 为数字,连续向后剪切 n 个字符。举例来说,我要剪切10 个字符, 『10x』。
复制
yw 复制当前字符到下个单词头(不包含)的数据。
ye 复制当前字符到当前单词尾(包含)的数据。
yy 复制游标所在的那一行(常用)
nyy n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
y1G 复制游标所在行到第一行的所有数据
yG 复制游标所在行到最后一行的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
粘贴
p, P 粘贴到当前行下面/插入到当前行上面

搜索替换

搜索
/[content] 向光标之下寻找一个[context]的字符串。
?[content] 向光标之上寻找一个[context]的字符串。
n (在搜索中),下一个搜结果(如果是/?,则相反)。
N (在搜索中),上一个搜结果(如果是/?,则相反)。
替换
:n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则: 『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g:%s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/gc:%s/word1/word2/gc 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)

其他

文件操作
:w 写入磁盘
:wq 写入并退出
:q 退出,如果有修改,则提示错误,无法退出。
:q! 强制退出,抛弃修改的内容。
:w [filename] 写入到新文件
:r [filename] 将 『filename』 这个文件内容加到游标所在行后面
:n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。
:! command 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
其他
:set number 临时显示行号;要永久设置,请在~/.vimrc中设置。
:set nonu 与 set nu 相反,为取消行号!

vim
https://messenger1th.github.io/2024/07/24/Tools/vim/
作者
Epoch
发布于
2024年7月24日
许可协议