操作模式
一般vim有三种模式
正常模式
此模式下你的输入不会写入文件, 而是读为命令
快捷键(光标定位) | 解释 (参照光标位置) |
---|---|
h l | 水平向左移动 水平向右移动 |
j k | 垂直向上移动 垂直向下移动 |
w W | 移动到下一个单词的首字符处 移动到下一个长单词的首字符处 |
e E | 移动到下一个单词的结尾字符处 移动到下一个长单词的结尾字符处 |
b B | 移动到前一个单词的首字符处 移动到前一个长单词的首字符处 |
0 $ | 移动到行首 移动到行尾 |
( ) | 移动到句首 移动到句尾 |
{ } | 移动到段首 移动到段尾 |
gg G | 到第一行 到最后一行 |
<n>G :<n> | 跳转到第n行 如11G和:11(命令模式) |
Ctrl+B/Page Up Ctrl+F/Page Down | 翻到上一页 翻到下一页 |
快捷键 (删除) | 解释 (参照光标位置) |
---|---|
x <n>x | 删除(剪切)当前字符 删除(剪切)后面n个字符 |
dd <n>dd | 删除(剪切)当行 删除(剪切)n行 |
dG D | 从当行删除到文件尾 从当前位置删除到行尾 |
:<n1>,<n2>d | 从n1行删除到n2行(如:566,666d,命令模式) |
ZZ | 保存退出 |
快捷键 (复制剪切) | 解释 (参照光标位置) |
---|---|
yy nyy | 复制当前行 复制下面n行 |
dd ndd | 剪切当前行 剪切下面n行 |
p P | 粘贴在下一行 粘贴在上一行 |
快捷键(覆盖) | 解释 (参照光标位置) |
---|---|
r | 取代光标所在处字符 |
R | 覆盖模式,按Esc退出 |
u | 撤销上一步操作 |
快捷键 (查找替换) | 解释 (参照光标位置) |
---|---|
/ keyword n N | 搜索关键字 下一个 上一个 |
:%s/oldworld/newworld/g 范围: %s 或者 n1,n2s 选项: c/g | :范围/被替换词/替换词/选项 全文范围/两行之间 每个询问/不询问 |
一些举例
:1,4s/^/#/g 1-4行添加行首注释
:1,4/^#//g 1-4删除行首注释
:1,4/^/[\\/\\/]/g 1-4行添加//注释(\\表示转义)
:1,4/^[\\/\\/]//g 1-4删除//注释
自定义快捷键
nmap
(普通模式)
vmap
(可视模式)
imap
(插入模式)
cmap
(命令行模式)
快捷键设置 | 解释 |
---|---|
:map <C-/> 0i#<ESC> | Ctrl+/: 行首添加 # |
:map <C-b> 0x | Ctrl+b: 删除行首字符 |
:map <C-S-p> p | Ctrl+Shift+p: 粘贴当前行 |
:map <A-S> :wq<CR> | Alt+S: 保存并推出 |
C, S, A, F | Ctrl , Shift , Alt , Fn 键 |
永久快捷键请创建~/.vimrc文件,直接写命令不需要写冒号: |
进入插入模式
在正常模式下按:
操作符 | 命令解释(参照光标位置) |
---|---|
a | 在下一个位置追加 |
A | 在行尾追加 |
i | 在光标处插入 |
I | 在行首插入 |
o | 在下方另起一行 |
O | 在上方另起一行 |
命令模式(底行模式)
命令 | 解释 |
---|---|
:w :q | 写入更改,或者另存文件:w newfile 退出vim |
:[w/q/wq]! | 强制 (写入保存/不保存退出/保存并推出) |
:! [commd] | 感叹号单独使用时可以临时执行外部命令行命令 |
:/[keyword] :?[keyword] | 查找下文关键词 查找上文关键词 |
:set nu :set nonu | 显示行号 不显示行号 |
:set ic :set noic | 不区分大小写 区分大小写 |
:r [file] :r ![commd] | 导入文件内容到光标处 将命令执行结果写入光标处 |
:ab mail xiaomin@abc.com | 为长文本添加别名 |
#编辑一些配置文件后可以使用source命令刷新
$ vim /etc/locale.conf
LANG="zh_CN.UTF-8"
$ source /etc/locale.conf