# vim快捷命令
# 以下命令均在命令模式下操作
转到文件结尾:
G转到第9行:
9G删除所有内容(先用G转到文件末尾):
:1,d删除第9行到第200行的内容(先用200G转到第200行):
:9,d删除光标所在处字符:
x删除光标所在前字符:
X删除到下一个单词开头:
dw删除到本单词末尾:
de删除到本单词末尾包括标点在内:
dE删除到前一个单词:
db删除到前一个单词包括标点在内:
dB删除一整行:
dd删除光标位置到本行结尾:
D 或 d$删除光标位置到本行开头:
d0
# 查找与替换
:s 命令用来查找与替换字符串,如下语法:
:{作用范围标识符}s/{查找的内容}/{新的内容}/{替换的标志}
例子:
:%s/hello/world/g
如上命令表示会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g)。
# 作用范围标识符
| 标识符 | 说明 | 例子 |
|---|---|---|
| :%s | 全局范围 | :%s/hello/world/g |
:s | 当前行 | :s/hello/world/g |
| :2,10 | 指定2-10行 | :2,10s/hello/world/g |
| :.,+3s | 当前行与接下来三行,.代表当前行,+3代表接下来的三行 | :.,+3s/hello/world/g |
# 替换标识符
g 代表全局global替换
:%s/hello/world/gi表示不区分大小写,I表示区分大小写
:%s/hello/world/i备注: (i和I)与(\c和\C)等效,如下命令与上面命令等效
:%s/hello\c/world/c表示需要确认,如下所示全局查找"hello"替换为"world"并且需要确认
:%s/hello/world/gc回车后Vim会将光标移动到每一次"hello"出现的位置,并提示
replace with world (y/n/a/q/l/^E/^Y)?按下y表示替换,n表示不替换,a表示替换所有,q表示退出查找模式, l表示替换当前位置并退出。^E与^Y是光标移动快捷键
# xshell下vim不能复制粘贴,粘贴出现缩进错位解决方法
鼠标不能复制和粘贴的解决方法:
:set mouse=c粘贴带注释代码时,出现缩进错位的解决方法:
2.1 先设置vim为粘贴模式:
:set paste2.2 查找到字符颜色设置:
:hi Search term=standout ctermfg=0 ctermbg=3