我自己常用的GVIM命令和设置(及时更新)

我自己常用的GVIM命令和设置(及时更新)

转载来源:我自己常用的GVIM命令和设置(及时更新)

cat .vimrc

set sw=4 # shiftwidth=4 使用每层缩进的空格数
set ts=4 # tabstop=4 编辑时一个TAB字符占多少个空格的位置
set et #将输入的TAB自动展开成空格
set nu #显示行号
syn on #语法高亮
set tags=tags; #设置tag属性
set autochdir
let Tlist_Inc_Winwidth=0 #设置Tlist属性
let Tlist_Use_Right_Window=1
let Tlist_File_Fold_Auto_Close=1
set fencs=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 #设置gvim显示中文

常用快捷键

整体缩进一段代码(插入tab):

选中一段代码,< 或 > 或 2< 或 3>

单行縮进:

ctrl+t(后退) ctrl+d (前进)一个Tab

复制:

按v或V或Ctrl+V进入visual模式,移动光标选择一段内容,按y(若要使用系统黏贴板,按"+y)(要剪切,只要用 d 命令)。三者的区别: v以字符为单位,V以行为单位,Ctrl+V是块选择。

粘贴:

p或P。区别:前者粘贴到光标后面,后者粘贴到光标前面


附加,未整理:

在文本中移动:
h = 前, j = 下, k = 上, l = 后。 (也可在命令前加数字,如 3h 为前移3格)
(Tips: vim 许多命令可以在前面加上数字来表示执行次数,试试看哦)
G 跳到文件尾
nG 跳到第n行 (同命令 :n)
^g 显示行号
0或^ 跳到行首
$ 跳到行尾
w 跳到下个单词首字符
e 跳到下个单词尾字符
b 跳到前一个单词首字符
- 跳到上一行行首
+ 跳到下一行行首
n| 跳到当前行第n列
L 跳到本页最后一行行首
M 跳到本页中间一行行首
H 跳到本页首行行首

光标定位:
f$ 跳至本行下一个 $ 处
F$ 跳至本行前一个 $ 处
t$ 跳至本行下一个 $ 前一个字符
T$ 跳至本行前一个 $ 后一个字符

显示调整:(光标自动做相应移位)
^D 下翻半页
^U 上翻半页
^F 下翻一页
^B 上翻一页

插入模式:
i 在当前字符前插入 (试试看 4i hello 的效果 :)
I 在行首插入
a 在当前字符后插入
A 在行末插入
o 在下插入新行
O 在上插入新行
J 把下一行并入当前行

删除(剪切):
x 删除当前字符
X 删除前一个字符
dw 删除当前字符所在单词包括词尾空格(只删除光标后的部分)
dd 删除当前行
d$ 删除当前字符到本行尾 (同命令 D)
:m,n d 删除 m~n行
:nd 删除第n行

修改:
R 从当前字符开始改写
cw 修改当前单词 (从当前字符开始修改)
s 修改当前字符
r 修改当前字符(只修改一个字符)
S 修改当前行 (同命令 cc)
C 修改从当前字符到行尾的内容
c + 任何光标定位命令,修改目标内容, 如 cfa 修改当前字符到下一个 a 间的内容

Undo:
u 撤销前一步操作(此命令在各种系统实现有所不同,在我使用的FreeBSD 4.11上功能同windows下撤销)
U 撤销本行所有操作

Redo:
^R 重做前次 undo 的操作 (同 :redo)
查找:
:/word 向下查找word
:?word 向上查找word
n 以当前查找方向同向查找下一个word
N 以当前查找方向反向查找下一个word
例: :?love 查找光标前出现的第一个love,按 n 查找
更前一个love。
% 查找匹配的括号(程序员最爱啊)

替换:
:s/src/dst 将本行搜索到的第一个 src 替换为 dst
:%s/src/dst 将全文所有的 src 替换为 dst
:s/src/dst/g 将本行的 src 替换为 dst
:$,$… s/src/dst/g 在指定范围内替换src为dst,其中$,$… 为指定行号,例: :2,5,6 s/hi/hello/g

复制与粘贴: yy 复制当前行 yw 复制单词(从当前字符开始复制) y + 光标定位命令,复制目标内容,如 yFa 任何删除命令删除的内容都在buffer中,可以进行粘贴。 p 在前粘贴 P 在后粘贴 注意:在以行为单位粘贴时与字符是不同的 :m,n copy x 将m~n行内容复制到 x 行之后 #copy可以简写为cp :m,n move x 将m~n行内容移动到 x 行之后 #move可以简写为mo

推荐阅读