Vim 入门教程和常规操作
设置
基本概念
vim 编辑器主要有三个模式: 命令行模式(normal) , 插入模式(insert) ,底行模式.部分教程有说底行模式,但是底行模式也属于 normal 的一种
- 理解 normal 模式的 tips: 在一般的编辑器中,当你需要 copy 一段文字的时候,你需要使用 Ctrl 键,比如:Ctrl-C.也就是说,Ctrl 键就好像 功能键 一样,当你按下了功能键 Ctrl 后,C 就不在是 C 了,而且就是一个命令或是一个快键键了,在 VIM 的 Normal 模式下 所有的键就是功能键 这个要牢牢记住
normal 模式的常用命令
<C-λ>
翻译为 Ctrl-λ
- 存活需要
i → Insert 模式,按 ESC 回到 Normal 模式.
x → 删当前光标所在的一个字符。
:wq → 存盘 + 退出 (:w 存盘, :q 退出)(:w 后可以跟文件名)
dd → 删除当前行,并把删除的行存到剪贴板里
p → 粘贴剪贴板
hjkl → (强例推荐使用其移动光标,但不必需) 你也可以使用光标键 (←↓↑→). 注: j 就像下箭头。
:help <command> → 显示相关命令的帮助。你也可以就输入 :help 而不跟命令。(退出帮助需要输入:q)
- 进阶需要
# 各种插入模式
a → 在光标后插入 (append)
o → 在当前行后插入一个新行
O → 在当前行前插入一个新行
cw → 替换从光标所在位置后到一个单词结尾的字符
# 简单的移动光标
0/home → 数字零,到行头
^ → 到本行第一个不是 blank 字符的位置(所谓 blank 字符就是空格,tab,换行,回车等)
$/end → 到本行行尾
g_ → 到本行最后一个不是 blank 字符的位置。
/pattern → 搜索 pattern 的字符串(如果搜索出多个匹配,可按 n 键到下一个)
# 拷贝/粘贴
p/P → 粘贴 p 是当前位置之后粘贴 P 是当前位置之前粘贴
yy → 拷贝当前行当行于 ddP
# Undo/Redo
u → undo
<C-r> → redo
# 打开/保存/退出/改变文件
:e <path/to/file> → 打开一个文件
:w → 存盘
:saveas <path/to/file> → 另存为 <path/to/file>
:x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ 不需要输入冒号并回车)
:q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改
:bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件(:n 到下一个文件)
- 更加牛逼
# 移动光标更加有效率
NG/:N → 到第 N 行
gg/:1 → 到第一行
G/:$ → 到最后一行
w → 到下一个单词的开头
e → 到下一个单词的结尾
% → 匹配括号移动,包括 (, {, [. 需要把光标先移到括号上
*和# → 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
设置行号
# 每行左边显示行号
:set number
# vim 右下角显示行号
:set ruler
替换
替换(Substitute) :substitute
,调用格式如下: :[range] s/search/replace/[flags] [count]
- 默认情况下值替换当前行匹配中的内容,想要替换全部内容要使用
g(global)
命令:%s/from/to/g
- 标记(flags)包括:
p(print)
,是要求打印所做的改动c(confirm)
,是要求在做出改动以前先询问y Yes
: 执行这个替换n No
: 取消这个替换a All
: 执行所有替换而不要再询问q Quit
: 退出而不做任何改动l Last
: 替换完当前匹配点后退出CTRL-E
: 向上翻滚一行CTRL-Y
: 向下翻滚一行
i(ignorecase)
,是不区分大小写
- 替换范围
:1,$
: 全部,eg::1,$s/idiots/manages/g
:.,$
: 当前行到文件尾:.,.+8
: 当前行后续 9 行:5,15
: 指定行数替换:s/helo/hello/g4
: 当前行在内的以下 4 个替换单元替换
:%s/Kang\|Kodos/alien/gc
: 多项替换 Kang 和 Kodos
各主题相关
查找相关
- normal 模式下
/
进入查找模式。输入要查找的字符串并按下回车,会跳转到第一个匹配。按下n
查找下一个,按下N
查找上一个。支持正则表达式,例如/vim匹配行尾的"vim"。 需要查找特殊字符需要转义,例如/vim\$匹配"vim匹配行尾的"vim"。需要查找特殊字符需要转义,例如/vim$匹配"vim" - 大小写敏感:在查找模式中加入\c 表示大小写不敏感查找,\C 表示大小写敏感查找
set ignorecase
: 设置默认进行大小写不敏感查找set smartcase
: 大小写敏感查找
- 查找替换:
:s
(substitute) 命令。:{作用范围}s/{目标}/{替换}/{替换标志}
,例如:%s/foo/bar/g
会在全局范围(%) 查找 foo 并替换为 bar,所有出现都会被替换(g)- 作用范围:
s
当前行,如:s/foo/bar/g
;%s
全文,如:%s/foo/bar/g
;'<,'>s
选区,如:5,12s/foo/bar/g
5-12 行、:.,+2s/foo/bar/g
当前行和接下来两行 - 替换标志:
g
表示全局 global 替换。i
表示大小写不敏感查找,I
表示大小写敏感
- 作用范围:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论