vim 操作¶
vim基本操作¶
移动光标¶
h - 左移 j - 下移 k - 上移 l - 右移
H - 移动到页面顶部 M - 移动到页面中间 L - 移动到页面下面
w - 移动到下个单词开头 e - 移动到下个单词结尾 b - 移动到上个单词结尾 % - 移动到匹配符号(括号类,:h matchpairs)
0 - 移到行首 ^ - 移到行首 $ - 移到行尾 g_ -移到行内最后一个非空白符 gg - 移到文件第一行 G - 移到文件最后一行 5G - 移到文件第5行 fx - 移动到下次x字符出现的时候 tx - 移动到下次x字符出现的位置的前一个字符
; - 重复f,F,t,T的移动 , - 重复f,F,t,T的移动 } - 移动到下一段落 { - 移动到上一段落
zz - 移动屏幕使光标居中
Ctrl + e - 向下移动屏幕(不移动光标) Ctrl + y - 向上移动屏幕(不移动光标) Ctrl + d - 向前滚动半屏 Ctrl + u - 向后滚动半屏
命令前加数字表示命令重复次数,“4j”就表示向下4行,执行“j”命令4次
编辑¶
r - 替换当前字符 J - 将下一行合并到当前行 gJ - 将下一行合并到当前行,中间不留空白字符 gwip - 重整段落,还没明白是怎麼一回事 cc - 清除当前行,然后进入插入模式 c$ - 从光标开始,修改当前行 ciw - 修改整个单词 caw - 修改一个单词(不留空格) cw - 从光标开始修改单词 s - 删除当前字符,开始修改 S - 清除当前行进入插入模式 xp - 当前字符后移动 u - 撤销 Ctrl - r 重复 . - 再次执行上个命令
可视化模式¶
v - 进入可视化模式 V - 进入可视化模式(行粒度) o - 切换光标选择区开头/结尾 Ctrl + v -进入可视化模式(矩阵选择) O - 切换光标到选择区的角 aw - 选择当前单词 ab - 选择被()包裹的区域(含括号) ib - 选择被()包裹的区域(不含括号) aB - 选择被()包裹的区域(含括号) iB - 选择被()包裹的区域(不含花括号)
可视化命令
- 向右缩进 < - 向左缩进 y - 复制 d - 剪切
- 大小写切换
寄存器¶
:reg - 显示寄存器内容 “xy - 复制内容到寄存器x ”xp - 粘贴寄存器x中的内容
标记marks¶
:marks - 标记列表 ma - 设置当前位置为a ‘a - 跳转到标记a的位置 y’a - 复制当前位置到标记a的内容
宏¶
qa - 录制宏a q - 停止录制宏 @a - 执行宏a @@ - 重新执行上此执行的的宏
复制,剪切,粘贴¶
yy - 复制当前行 2yy - 复制2行 yw - 复制当前单词 y$ - 复制,从光标位置到行末 p - 在光标后粘贴 P - 在光标前粘贴 dd - 剪切当前行 2dd - 剪切2行 dw - 剪切当前单词 D - 剪切从光标到行末 d$ - 从光标到行末 x - 剪切当前字符
退出¶
:w - 保存呢 :w !sudo tee % - 使用sudo命令保存当前文件 :wq或:x 或ZZ保存并退出 :q :q!或ZQ - 不保存,强制退出 :wqa - 保存并退出所有标签
查找/替换¶
/pattern ?pattern \vpattern n - 下一个 N - 上一个 :%s/old/new/g - 全部替换 :%s/old/new/gc - 逐个替换 : noh - 移除搜索结果
多文件搜索¶
:vimgrep /pattern/(file) :cn - 移动至下一个 :cp - 移动到上一个 :copen - 打开搜索结果列表
greet vim
可用于生产环境的配置¶
需求¶
- 新建文件,关闭文件
:e file
新建缓冲区打开file文件案:bn
后一个缓冲区:bp
前一个缓冲区:bd
关闭缓冲区:ls
列出所有打开的缓冲区
- 使用tab标签
:tabnew
|:tabnew file
打开新标签^w + T
将窗口变成标签(分屏的窗口)gt
|:tabnext
|:tabn
切换到下一个标签gT
|:tabprev
|:tabp
切换到上一个标签#gt
切换到第#
个标签:tabmove #
移动标签到第#
位:tabclose
|:tabc
关闭当前标签:tabonly
|:tabo
关闭其他标签:tabdo command
在所有标签中执行命令:tabdo q
关闭所有标签
- 分屏
:sp file
水平分割窗口:vsp file
垂直分割窗口^w + s
水平分割窗口^w + w
窗口见切换^w + q
退出窗口^w + v
垂直分割窗口^x + h-j-k-l
切换窗口
- 找到最近修改的文件
- 找到函数定义
- 找到声明
- 替换
- 回滚
- google search
- ipython交互
小技巧¶
使用系统剪切板
# 安装必要包
$ sudo apt-get install vim-gui-common
# 使用,选中目标后
“+y
实际上只是在原命令y
前添加”+
links: - https://www.zhihu.com/question/19863631 - https://github.com/ruanyf/articles/blob/master/dev/vim/operation.md