Vim用法
根据参考文章对vim的用法进行总结记录,本文仅用作个人备忘。
- vim安装
- 配置文件
- 简单介绍
- 输入模式
- 常用操作
- 插件操作
vim安装
-Ubuntu:sudo apt-get install vim-gtk
-Centos: yum -y install vim*
配置文件
sudo vim /etc/vim/vimrc
使得语法高亮:syntax on
在VIM的最后一行,输入他们,可以使VIM变得更漂亮、舒服。
set nu
// 在左侧行号
set tabstop
//tab 长度设置为 4
set nobackup
//覆盖文件时不备份
set cursorline
//突出显示当前行
set ruler
//在右下角显示光标位置的状态行
set autoindent
//自动缩进
简单介绍
Vim有三种模式:
1.导航(navigation)模式。 这时候,字母就是上下左右键。
2.输入模式。这时候,你按字母键,才会输入字母。
3.命令模式。需要先输入”:” 冒号,才会进入。
模式切换:
默认为导航模式。 在其他模式下,按”ESC”就回到了导航模式。
在导航模式下,输入 a, i, o等,就可以进入到输入模式。
在导航模式下,输入 : 可以进入到命令模式。
用Vim的时候,ESC 会用的比较多。
输入模式
输入文本
从导航模式到编辑模式,有下面几种方法:
在光标前输入: i ( insert )
在光标后输入: a (append / after )
在行首增加内容: shift + i
在行末增加内容: shift + a
在光标下行增加内容: o
在光标上行增加内容: shift + o (这个操作往往会有500毫秒的延迟)
删除
删掉一个字母:x
删掉一个单词: dw
删掉一行: dd
删掉多行: shift +v, 然后 x 或者 d
复制与粘贴
复制,或者删除(vim认为删除就是剪切,所有被删掉的内容,都会被放到复制缓冲区中)后,就可以粘贴了。
复制一个单词: yw
复制当前行: yy
粘贴: p
常用操作
意义 | 操作 |
---|---|
左下上右 | h j k l |
下一个词 or 上一个词 | w or b |
下一屏 or 上一屏 | ctrl+f or ctrl+b |
选择多行 | shift+v 上下左右选择 (可以尝试只按住v) |
搜索 | :/keyword (下一个:n 上一个:shift+n ) |
全局替换 | :%s/旧字符/新字符 |
局部替换 | 选择多行再进行替换 |
代码补全 | 下一个候选ctrl+n 上一个候选ctrl+p |
显示/隐藏行数 | 显示行数:set number 取消行数:set nonumber |
折叠/取消折叠过长的行 | 折叠:set wrap 取消折叠:set nowrap |
插件操作
(需要的插件乐意自行配置下载,主要修改.vimrc文件)
根据开头提到的参考文章配置的vim,常用操作如下:
快速打开文件
使用的插件: fuzzy find
ctrl + t, 就会弹出 >file> 这样的标志,然后输入:**/文件名 即可。 文件名是模糊查询。
我输入 ab, vim 也会把 aub 的结果列出来。
快速打开历史文件
使用的插件: MRU (most recently used files)
ctrl + e 即可。 (这个快捷键可以自己配)
跳到行首,行末
跳到当前行的末尾: shift + 4 (意为 $ , 这是正则表达式中 末尾的意思)
跳到当前行的行首: 0
快速跳到文件首行,尾行。
“跳到尾行” 这个功能很多时候很有用。例如, vim 进入到文件夹后,最新的文件(特别是以日期命名的文件)往往排在最下面。shift + g 然后按回车可以直接打开。
gg: 第一行
shift + g: 末行。
快速跳到 上一次 / 下一次编辑的地方:
跳到 上一次编辑的地方: g;
跳到 下一次编辑的地方: g,
返回上一次/下一次编辑的文件或位置
快速返回上一次编辑的文件: ctrl + o ( o 意为 outer )
快速返回下一次编辑的文件: ctrl + i ( i 意为 inner )
针对多个文件进行 查找和替换
使用插件: Greplace
Gsearch -F ‘要替换的字符串’ . -R –include=*rb
这里的 -F, -R –include=*rb 这些参数,跟grep中的一样。
在返回的结果中,把该替换的替换。
Greplace 然后选择 y/a/n 来决定是否替换。
最后, 输入 wa 保存所有文件的改动。
多重复制与粘贴
使用YRShow 插件。
在我的个人配置中, , + a 即可。原始命令: :YRShow 。 在弹出的“复制历史列表”中, 上下移动, 找到合适的后直接按回车即可。
注释多行
使用插件: nerd-commentor. 配置了自己的快捷键。
选中多行 (shift + v)
,cb (逗号 c b 三个键要快速按)
取消注释: 使用传统的替换即可。
为多行代码格式化
多行选中后, 按 = 即可。 (不是一定好用。 因为有的代码本身就是不完整的)
快速跳到当前光标所属文件(如果可能的话)
在 Rails的 路由或者 视图文件中,很好用。gf 即可。 (gf = go to file)
在 View 中, 快速跳到一个 partial.
在 config/routes.rb 中跳到controller
Rails插件
Rails插件允许我们快速的在各种文件中切换
跳转到 controller: ctrl + c
跳转到 model : ctrl + m
跳转到 view : 先移动到对应的action, 再 ctrl + v