------------------------------------------------------------
Vim有三种模式:命令模式、编辑模式、插入模式
配置文件为.vimrc

三种模式的转换为:
1、命令模式下按“:”进入编辑模式,“ESC”返回命令模式
2、命令模式下按“a、A、i、I、o、O”字母中一个,进入插入模式,“ESC”返回命令模式(a在当前光标后插入、A在当前行尾插入、i在当前光标前插入、I在当前行首插入、o在当前行后插入新行、O在当前行前插入新行)
在使用中应经常停留在命令模式下,而不要过多地停留于插入模式下
------------------------------------------------------------


------------------------------------------------------------
《Vim部分设置命令》
------------------------------------------------------------
:set go=   将gvim界面中的菜单栏及工具栏去掉(go:gui option)
:set cursorline  高亮显示当前行
:color evening  设置颜色方案(输入color后Tab键,可以自动补全支持的各种颜色方案,在可以选择的地方Tab常有可选择的功能)
:set hlsearch  高亮显示被查找到文本
:set is    在输入同时开始搜索
:set nois   关闭is设置
:set ch=2   设置命令行占两行高
:set lbr   禁止在单词中分行
:set mousehide  输入文本时隐藏鼠标
:set autoindent  自动缩进
:set sw=4   自动缩进宽度
:set tabstop=4  制表符宽度
:set backspace=indent,eol,start 在退格时允许删除非本次插入文本,并行,自动缩进
:set guifont=新宋体:h15:cGB2312 设定显示字体与字号
:set nowrap  指定不折行
:set guioptions+=b 添加水平滚动条
:set number   显示行号
:set nonumber  取消行号
:set cindent  C语言风格缩进
:syntax on   语法关键字着色
:set sm    显示括号配对情况
:set ruler   添加标尺,显示当前编辑位置
:set ignorecase  忽略大小写(Ignore cast)
:set noignorecase 取消忽略大小写
:ab Text1 Text2  输入Text1后回车或空格时使用Text2替换Text1
:set mousemodel=popup 右击鼠标,弹出快捷菜单
:unab Text1   取消ab命令设定
:map  CommandLine 定义快捷键(为ctrl+v,ctrl+p) 在行首添加#符号:map  I#<ESC>
:unmap    取消快捷键
:setf c    指定文件类型
autocmd GUIEnter * simalt ~x 启动最大化窗口
------------------------------------------------------------

------------------------------------------------------------
《Vim操作命令》
------------------------------------------------------------
:e FileName   打开文件名指定的文件(可以使用Tab键)
:o FileName   打开文件
:sp FileName  纵向划分新窗格显示新文件
:vsp FileName  横向划分新窗格显示新文件
:w      保存文件
:w FileName   Save as...
:q     退出(可与w组合使用,加!则为强制)
:!CommandLine  执行命令
:r FileName  导入新的文件或命令执行结果
定位键:h左、j下、k上、l右、M顶行、H中间行、L底行、gg首行、G尾行、$当前行尾字符、0行首、^当前行首字符、w下一单词、b单词首字母、e单词末字母
ctrl+w+hjkl 分别定位到左、下、上、右窗口
:n 定位至第n行,也可这样:nG;
在Vim操作中,应学会利用数字来达到快速操作的目的
x 删除/剪切光标处字符
nx 删除/剪切光标处n个字符
dd 删除/剪切当前行
ndd 删除/剪切当前连续n行
d$ 删除/剪切当前光标至行尾
d^ 删除/剪切当前光标至行首
:n1,n2d 删除/剪切n1至n2行
dG 删除/剪切当前光标位置至文件末
yy(Y) 复制当前行
nyy(nY) 复制n行
p 粘贴到下一行
P 粘贴到前一行
u 取消上一步
. 重复上一步
/Text 向前搜索
n(N) 下(上)一个搜索匹配项
r 替换当前光标处字符
R 从当前光标处开始替换,直到ESC
c 修改区域文本
cw 修改一个单词
v 行选取模式
ctrl+v 块选取模式
qa 录制名为a的宏
q 结束宏录制
@a 执行宏a
n@a n次执行宏a
ctrl+p(Ctrl+n) 自动完成录入
ctrl+x+l   自动完成整行
ctrl+x+f   自动完成文件名
:tabnew FileName 用新标签打开新文件
ctrl+f page down
ctrl+b page up
:X     为文件加密
=  按C语言格式整理格式
%  在匹配符号间跳转(如:括号)
J  将当前行与下一行合并
:%!xxd 进入二进制编辑
:%!xxd -r  结束二进制编辑
:s  查找并替换
s  替换光标处字符
S  替换光标所在行
:g  查找符合正则表达式的行
:!g  查找不符合正则表达式的行
------------------------------------------------------------

------------------------------------------------------------
《Vim操作技巧》
------------------------------------------------------------
:%s/text/\r&/gc  在text部分前面添加回车%s表示替换范围为全文,&表示被替换部分,g多次替换,c每次替换需用户确认
n1,n2s/^/\/\//g  在n1至n2行首添加双斜线注释符
n1,n2s/^\/\///g  将n1至n2行首注释双斜线删除
>>(shift+>两次) 不进入插入模式就整行跳格(<<相反)
20i-[ESC]   插入20个连字符
------------------------------------------------------------
不同的环境分别设置
if(has("gui_running"))
"add here for gvim
else
"add here for vim
endif
------------------------------------------------------------

------------------------------------------------------------
《Vim正则表达式符号》
------------------------------------------------------------
正则表达式由普通字符及元字符组成,元字符代表一定的特殊含义。常见元字符如下:. 匹配单个字符
$ 匹配行结束符
^ 匹配行开始符
\ 引用符,其后字符为其本义;与C中转义

 

 字符相似
[] 匹配括号中的任何一个字符
[c1-c2] 匹配括号中的字符区间,可以同时设定多个区间;[A-Za-z]
[^] 取[]的补集
\< 匹配单词开始
\> 匹配单词结束
| 匹配条件逻辑或运算
* 匹配0或多个正好在它之前的那个字符
+ 匹配一个或多个正好在它之前的那个字符;9+匹配9 99 999
? 匹配0个或多个正好在它之前的那个字符
\{i\} 匹配i数目的字符
\{i,j\} 匹配i或j数目的字符
------------------------------------------------------------

VIM 实现tab标签页及分屏,切换命令

如果使用xshell,那么 alt + 数字 可以切换的是xshell顶部的大的标签页,这个也很方便。
 

1,在一个窗口中,VIM 的小tab标签页命令:

  :tabnew [++opt选项] [+cmd] 文件            建立对指定文件新的tab

  :tabc       关闭当前的tab
  :tabo       关闭所有其他的tab
  :tabs       查看所有打开的tab
  :tabp      前一个
  :tabn      后一个

一般使用标准模式下的 Ngt 来进行切换,这个很方便。另外,如果需要在当前的tab页中也可以打开多个文件,文件之间用 ctrl + 6 来切换。如果习惯了前一种方法,后面这种基本上是用不到了。
 
2,分屏
:vsplit 这个命令太长,没人用的。大家都用 :vsp ,:sp filename来分屏。
分屏的相关动作都是ctrl+w 开始的,然后再跟一个其他字母
ctrl+w = :让左右上下各个分屏宽度,高度均等。
ctrl+w _(shift + -) :当前屏幕高度扩展到最大
ctrl+w |(shift + \) :当前屏幕宽度扩展到最大
ctrl+w c:关闭当前屏幕
有了以上3个基本够了。
 
 
可视化模式

在可视化模式下,可以对一个文本块的整体进行操作。例如,首先高亮选中一部分文本,然后用d命令删除这个文本块。可视化模式的好处在于,你可以在做改动之前,就看到操作将影响的文本。可视化模式可以分为以下三种:

  1. 用v命令进入的字符可视化模式(Characterwise visual mode)。文本选择是以字符为单位的。
  1. 用V命令进入的行可视化模式(Linewise visual mode)。文本选择是以行为单位的。
  1. 用ctrl-V进入的块可视化模式(Blockwise visual mode)。可以选择一个矩形内的文本。(注意:在Windows中,ctrl-V可能已经被影射为粘贴操作,可以使用ctrl-Q进入块可视化模式。)

切换可视化模式

通过输入相应的可视化命令,就可以切换到不同的可视化模式。

例如现在字符可视化模式下,如果想要切换到块可视化模式,那么只需要输入ctrl-V即可。

当然,我们也可以先用ESC关闭当前的可视化模式,然后再进入其它可视化模式。

在可视化模式下选择(使用h、j、k、l移动光标)

使用命令v进入字符可视化模式。在此模式下,用命令移动光标,光标起始位置和当前位置之间的文本将会以高亮显示。

这时就可以对这些高亮显示的文本进行整体的操作。例如:在字符可视化模式中,首先用6l命令选中光标右侧的6个字符,然后输入d命令删除高亮显示的文本。

使用命令V进入行可视化模式。在此模式下,我们使用2j命令,就可以选中当前行及其随后2行。

使用命令ctrl-Q进入块可视化模式。在此模式下,我们使用2l命令向右移动,然后使用3j命令向下移动,就可以选中4行2列的文本块。

命令gv可以重复前一次可视化模式时选中的文本。如果已经在可视化模式下,执行该命令会选中前一次选择的文本。如果重复行执gv命令,就会在当前选中的文本和前一次选中的文本之间进行切换。

当我们想要退出可视化模式时,可以按ESC键或ctrl+c键。

VIM可视化模式命令小结

v	进入字符可视化模式
V	进入行可视化模式
ctrl-V	进入块可视化模式
ctrl-Q
gv	选中前一次可视化模式时选择的文本
o	光标移动到选中文本的另一结尾
O	光标移动到选中文本的另一角落
posted on 2015-03-01 11:24  言止予思  阅读(359)  评论(0编辑  收藏  举报