目录

Vim实用技巧

概述

本文简单介绍几个 Vim 常用的操作。

移动

vim 的一个主要优势在于「移动」,快速移动可以让你的编辑更加快速,下面总结一些 vim 快速移动的操作。swp 文件是缓冲区文件的意思,也是编辑文件的内存映像,在 vim 的术语是「缓冲区」,也是 vim 大多数命令的操作区。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 将某个文件夹中的所有文件载入缓冲区
vim *.txt

# 产看缓冲区的内容
:ls

# 切换缓冲区列表中的文件,b代表「buffer」
:bnext
:bprev
:first
:last

# 快速轮换文件
<C - ^>

# 参数列表
:args

# 利用参数列表打开文件
vim
:args

# 强制退出不想检查是否有未保存的文件
:qa!

# 强制保存所有文件
:wa!

打注释

有没有经常要给 Maven 的 setting 文件的 profile 打注释?

没有找到很好的方法,原始一点的话就是用 visual 块模式,再统一插入注释符,删除的话同理。

具体流程就是 crtl+v,开启块模式,然后上/下移选中需要注释的行,shift+I,插入注释符(例如 #, //),然后 esc。删除的话同理。

https://segmentfault.com/a/1190000005172434

关于 xml 注释更骚的操作可以参考一下。

https://stackoverflow.com/questions/933975/commenting-out-xml-in-vim

xml格式化

有没有经常编辑过 xml 文件,结果格式一塌糊涂?

1
gg=G

解释一下,gg是移动到首行,=G是格式化的语句。

https://maxomnis.iteye.com/blog/2015795

替换

https://harttle.land/2016/08/08/vim-search-in-file.html

大小写转换

https://sjq597.github.io/2015/11/22/Vim-%E5%A4%A7%E5%B0%8F%E5%86%99%E8%BD%AC%E6%8D%A2/

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
~		# 将光标下的字母改变大小写
3~		# 将光标位置开始的3个字母改变其大小写
g~~		# 改变当前行字母的大小写
U		# 将可视模式下选择的字母全改写成大写字母
u		# 将可视模式下选择的字母全改成小写字母
gUU		# 将当前行的字母改成大写
guu		# 将当前行的字母改成小写
3gUU		# 将从光标开始到下面3行字母改成大写
gUw		# 将那个光标下的单词改成大写
guw		# 将光标下的单词改成小写

插入当前时间

在插入时间当前行,普通模式下,输入:r!date (linux平台)。

示例:2015年 01月 06日 星期二 17:37:37 CST

多个文件内容间复制

  1. 用vim打开一个文件1.txt
  2. 在普通模式下,输入:":sp"(不含引号)横向切分一个窗口,或者":vsp"纵向切分一个窗口,敲入命令后,你将看到两个窗口打开的是同一个文件
  3. 在普通模式下,输入:":e 2.txt",在其中一个窗口里打开另一个文件
  4. 切换到文件(1.txt)的窗口,在普通模式下,把光标移到你需要复制内容的起始行,然后输入你想复制的行的数量(从光标所在行往下计算),在行数后面接着输入yy,这样就将内容复制到临时寄存器里 了(在普通模式下ctrl+w,再按一下w,可以在两个窗口之间切换)
  5. 切换到目标文件(2.txt)窗口,把光标移到你接收复制内容的起始行,按一下p,就完成复制了。
警告
本文最后更新于 2017年2月1日,文中内容可能已过时,请谨慎参考。