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

Comments