VIM常用操作备忘速查
记录一下常用的vim vimdiff tmux 等操作。不复杂但是很关键。
ranger
ranger是非常好用的一款软件,可以直观的对文件夹进行跳转、切换操作。
安装直接解压安装包就可以了(一般linux发行版自带python)~
ranger-github
S(大写) 进入当前选中目录。
tmux
可以将终端变为多窗口的软件。
命令键 ———– ctrl+B (同时按下)
操作 | 效果 |
---|---|
M(命令键) + c | 创建新窗口 |
M + % | 左右分窗 |
M + “ | 上下分窗 |
M + , | 分窗重命名 |
M + 0~9 | 切换分窗 |
M + x | 关闭分窗 |
M + 方向键 | 多窗口切换分窗 |
VIM 常用操作备忘
命令 | 行为 |
---|---|
% | 跳转到对应的括号 |
gD | 跳转到局部变量定义处 |
* | 向下高亮标记 |
# | 向上高亮 |
gf | 打开文件 |
`` | 跳转到上次的光标位置 |
[[ | 跳转到上一函数 |
{ | 跳转到上一段落 |
%s/A/B/g | 将全局的A替换为B |
mx | 设置书签(x为a-z字母) |
`x | 跳转到某个书签 |
:deml{mark} | 删除一个书签 |
:deml! | 删除全部书签 |
:marks | 显示全部书签 |
vim -d a.txt b.txt | 比较文件 |
vimdiff a.txt b.txt | 比较文件 |
:set ic & :set noic 搜索是否区别大小写 {0~9}K 显示man手册
发现文件被折叠(没想到吧VIM还能折叠/捂脸) zo 显示折叠 zc 不现实折叠
多窗口下vimdiff操作
- Ctrl-w K(把当前窗口移到最上边)
- Ctrl-w H(把当前窗口移到最左边)
- Ctrl-w J(把当前窗口移到最下边)
- Ctrl-w L(把当前窗口移到最右边)
其中1和3两个操作会把窗口改成水平分割方式。 光标移动 接下来试试在行间移动光标,可以看到左右两侧的屏幕滚动是同步的。这是因为”scrollbind”选项被设置了的结果,vim会尽力保证两侧文件的对齐。如果不想要这个特性,可以设置: :set noscrollbind 可以使用快捷键在各个差异点之间快速移动。跳转到下一个差异点: ]c 反向跳转是: [c 如果在命令前加上数字的话,可以跳过一个或数个差异点,从而实现跳的更远。比如如果在位于第一个差异点的行输入”2]c”,将越过下一个差异点,跳转到第三个差异点。 文件合并 文件比较的最终目的之一就是合并,以消除差异。如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令 dp (diff “put”) 如果希望把另一个文件的内容复制到当前行中,可以使用命令 do (diff “get”,之所以不用dg,是因为dg已经被另一个命令占用了) 如果希望手工修改某一行,可以使用通常的vim操作。如果希望在两个文件之间来回跳转,可以用下列命令序列: Ctrl-w, w 在修改一个或两个文件之后,vimdiff会试图自动来重新比较文件,来实时反映比较结果。但是也会有处理失败的情况,这个时候需要手工来刷新比较结果: :diffupdate 如果希望撤销修改,可以和平常用vim编辑一样,直接 , u 但是要注意一定要将光标移动到需要撤销修改的文件窗口中。 同时操作两个文件 在比较和合并告一段落之后,可以用下列命令对两个文件同时进行操作。比如同时退出: :qa (quit all) 如果希望保存全部文件: :wa (write all) 或者是两者的合并命令,保存全部文件,然后退出: :wqa (write, then quit all) 如果在退出的时候不希望保存任何操作的结果: :qa! (force to quit all) 上下文的展开和查看 比较和合并文件的时候经常需要结合上下文来确定最终要采取的操作。Vimdiff 缺省是会把不同之处上下各6行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数,可以这样设置: :set diffopt=context:3 可以用简单的折叠命令来临时展开被折叠的相同的文本行: zo (folding open,之所以用z这个字母,是因为它看上去比较像折叠着的纸) 然后可以用下列命令来重新折叠: zc (folding close)