Vim step by step
@1: VIM中非常迷人的功能:
D------->从当前位置开始删除,直到当前行结束
cw------->修改游标所在的单词,修改范围从游标位置到单词结尾。
一个替换一个用r,一个替换多个用s
u撤销 ctrl+r重做
%------->跳转到配对的括号
''------->跳转到光标上次停靠的地方, 是两个', 而不是一个"
`.------->移动到最后被编辑的行。
>------->增加缩进,"x>"表示增加以下x行的缩进
<------->减少缩进,"x<"表示减少以下x行的缩进
[[------>跳转到代码块的开头去(但要求代码块中'{'必须单独占一行)
gD----->跳转到局部变量的定义处
mx----->设置书签,x只能是a-z的27个字母
`x------>跳转到书签处("`"是1左边> 的键)
gv------>退出可视化模式后,可以使用这个命令用同样的方式自动选取之前的区域
(------>移动到前一个段落的第一个字符,段落之间以空行为分割。
)------>移动到下一个段落的第一个字符。
*------>往下查找当前字符串,并移动到下一个字符串的首字符。
#------>往上查找当前字符串,并移动到上一个字符串的首字符。
命令模式下,选中一段代码,然后按下“=”,可以自动对齐选中的代码
q: 进入命令历史编辑(类似的还有 q/ 可以进入搜索历史编辑, q 后面如果跟随其它字母,是进入命令记录)
f+字母:跳到当前光标后面的第一个“字母”的位置上(如 fa 跳到下一个a)
t+字母:跳到当前光标后面的第一个“字母”的前一个字母上(如 ta 跳到下一个a的前一个字母)
d+f+字母:删除从当前光标开始到当前光标后面的第一个“字母”的全部字母(如 dfd 删到下一个d, dfa删到下一个a)
d+t+字母:删除从当前光标开始到当前光标后面的第一个“字母”前面的全部字母(如 dtd 删到下一个d前面的位置, dfa删到下一个a前面的位置)
set nu
set nonu
syntax on "开启vim语法高亮
set hlsearch
set incsearch
set tabstop=4
set nocompatible
set showmatch "开启括号匹配
@2:VIM中的文本复制到其他的程序(如浏览器,word)中:
我们可以在vim下面选中一段文字(需退出编辑模式)然后输入y,这样就把当前选中的文字复制到vim的临时寄存器(*号寄存器)中
了,再在我们需要粘贴的地方输入“*p就可以将临时寄存器中的内容粘贴进来(也可以直接按鼠标中键)。我们可以通过:reg命令查
看寄存器中的内容。
补充:
如果输入"1y 就是将选中的内容复制到1号寄存器,"2y就是将内容复制到2号寄存器,粘贴"寄存器号p,例如:"1p,"2p; 其中有两
个寄存器比较特殊,一个是*,另一个是+,*也就是我们上面说的寄存器,在选中文字的情况下,直接按y,默认复制到*寄存器。
下面我们来说这个+寄存器,当我们需要将vim里面的内容复制到别的地方时,假如是word中,就不能通过"1p将寄存器复制到word下
面,因为word没有1号寄存器这种东西,它只是在vim下存在,这时我们就需要用到+寄存器了,因为+寄存器是和系统剪贴板相通的。因
此,我们可以通过"+yy(如果要复制多行--如从当前行开始的6行,就可以使用"+6yy)将内容复制到系统剪切板上,然后直接在word里面
ctrl+v就行了。
说明:如果你按照上面的方法,尝试了很多遍都不能成功,那么你可以先到software-center(Ubuntu软件中心),安装一个叫做
vim-gui-common的软件。
@3:GVim快捷键:
块选择:ctrl + q 而不是ctrl + v
@4:Vim代码折叠:
zc折叠选中的部分
zo打开折叠
Vim代码折叠简介:http://scmbob.org/vim_fdm.html
@5:Vim以指定的编码格式打开文件:vim filename -c "e ++enc=utf-8"
http://blog.sina.com.cn/s/blog_3ef80b950100xm75.html
vim用指定的编码保存文件: encoding & fileencodings
http://blog.sina.com.cn/s/blog_6927adc1010153gl.html
Reference:
VIM中鼠标右键无法复制的解决方法: http://blog.csdn.net/txg703003659/article/details/6622995
vim-可视化操作: http://www.cnblogs.com/eddy-he/archive/2012/03/08/vim_view_operation.html