tabo这every加几个字母变新的单词什么单词

相关词典网站:TA开头的单词_TA相关单词_背TA开头的单词_TA相关单词列表_在线背英语单词_小精灵儿童网站
T开头的单词速查
 今日热词: - 在 |
单词搜索:
TA 开头的单词列表 (第1页)沉淀、积累、总结
常用的vim命令总结
vim就不多介绍了,很好用很强大。在windows下可以用gvim,配置一下_vimrc文件,再配合cscope和ctag等工具,就是一个功能强大的IDE。
常用的命令在这里总结下,以后忘了可以看看,部分摘自网络轻快的VIM和部分网摘。
首先记着它的三种模式,命令模式,插入模式,可视模式。
常用的命令:分类一下,无非是编辑相关的,移动,复制,粘贴,插入,删除等操作。
窗口相关的,多窗口,窗口分割和tab标签。
命令执行相关的以及配合cscope和ctag函数间查找和跳转的。
执行外部命令的,!make,find等等。。。
Vim的quickfix模式等等,可以方便的定位到编译的错误处。。
先来张截图:
首先是移动,
进入vim后键入:
即回到当初你编辑的位置
PS: 如果想把光标停止在指定的行, 这样
vim +n urfile // n为行号
如果要停留在行尾, 这样
vim + urfile
移动到行首
移动到行末
移动到下一行开头
移动到上一行开头
这里需要注意的是+ -和上面的j k有什么不同之处
j k也是移动到上一行和下一行,但它们移动的是光标所在的位置
+ -不管你的光标在何处,总是移动到下一行或上一行的行首
移动到下一个单词开头
移动到下一个单词结尾
倒退到上一个单词开头
需要注意的是,E会忽略标点符号,如:I‘m,e会当成两个单词,E则不会
同样,在命令前加上数字代表执行次数,如:2w,表示往下移动2个单词
往前滚动一整屏
往后滚动一整屏
往前滚动半屏
往后滚动半屏
往后滚动一行
往前滚动一行
看似比较多,但是可以根据键盘的位置来进行记忆,并且下面两个也不常用
上面的滚屏都有一个共同点,就是会改变光标的位置,且屏幕也在改变
如果想让光标维持在原来的位置实现滚屏请看下面
用z调整光标
将光标所在行移动到屏幕顶端
将光标所在行移动到屏幕中间
将光标所在行移动到屏幕低端
tips:980z&Enter&可以将第980行移动到屏幕顶端
好吧,有时候你其实不想滚屏,你只想在当前屏幕中移动
在屏幕中移动
移动到屏幕顶端的行
移动到屏幕中央的行
移动到屏幕底端的行
移动到屏幕顶端往下的第n行
移动到屏幕顶端往上的第n行
据我猜测这三个字母应该是HIgh、Middle和Low的缩写,其实挺好记的
多练习几遍就行了,需要注意的是:这里只是光标的位置变化,和上面两种不同
tips:你可以用+ -和j k实现同样的位置变化,只不过要操作多次而已
+ -和j k的区别忘了吗?往上看看吧
在当前行移动
移动到当前行的第一个非空格处
移动到当前行的第n列
这里的^与上面的0通常情况下表示的位置是一样的
而n|,个人感觉还没有h l方便,慢慢的数出行数还不如直接按着h l 左右移
根据文本块移动
所谓的文本块也就是句子、段落、小节等
移动到当前句子开头
移动到下一个句子开头
移动到当前这一段开头
移动到下一段开头
移动到当前这一节的开头
移动到下一节的开头
其中,VIM以? . !等符号来标记一个句子
空白行来标记一个段落
用节宏来标记一个节(节宏是什么我还没搞清楚)
根据行号来移动
显示当前行信息
转至文本末尾
gg        
移至文本开头
如果你不知道当前是多少行的话就可以用Ctrl+g来查看
如果想转到第800行,可以用800G
其实z命令也可以做到,并且把光标移动到第一行
tips:``反引号可以返回到使用G之前的位置
fx:移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用 ; 来重复你的上一个 f 命令。
tx:和上面的命令类似,但是是移动到 x 的左边一个位置。(这真的很有用)
Fx:和 fx 类似,不过是往回找。使用 , 来重复上一个F命令。
Tx:和 tx 类似,不过是往回移动到 x 的右边一个位置。
b:往前移动一个词。
w:往后移动一个词。
0:移动到当前行首。(是数字0)
^:移动到当前行的第一个字母位置。
*:读取处的字符串,并且移动光标到它再次出现的地方。
#:和上面的类似,但是是往反方向寻找。
/text:从当前处开始搜索字符串
text,并且到达 text 出现的地方。必须使用回车来开始这个搜索命令。如果想重复上次的搜索的话,按 n移动到下个 text 处,N 移动到上一个 text 处 。
?text:和上面类似,但是是反方向。
m{a-z}:在当前的位置标记一个书签,名字为
a-z 的单个字母。书签名只能是小写字母。你看不见书签的存在,但它确实已经在那里了。
`a:到书签 a 处。注意这个不是单引号,它一般位于大部分键盘的 1 的左边。
`.:到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。
%:在成对的括号等符号间移动,比如成对的 [ ] , { }, ( ) 之间。将放到任意符号上,然后通过
% 来移动到和这个符号匹配的符号上,% 还可以正确的识别括号的嵌套层数,总是移动到真正匹配的位置上。因此这个命令在编辑程序代码的时候非常有用,可以让你方便的在一段代码的头尾间移动。
上一节我们讲到了VIM中的移动,既然已经能够在屏幕和光标间游刃有余了
那么,现在就来谈谈插入命令
不知道有多少VIM新手和我当年(去年)一样,信誓旦旦的以为只有i可以插入
唉,现在想想都觉得可笑,都是Windows下的编辑器用多了的结果
鼠标一点,妈妈再也不用担心我的文本插入了……悲剧!
好了,让我们抛弃过去吧,从现在起奋斗,也许不算太晚
这是俺写的《轻快的VIM系列》第二节,每一节都会不断更新,加入更多技巧在里面
VIM新手们加油,咱一起总结,一起努力练习……
字符位置插入
在光标之前插入
在光标之后追加
你看,其实刚开始用这两个就足够了,这就是最基础的
为什么这么说呢?因为你可以依靠上一节中的移动命令来达到任意位置,然后再大力插入
不要忘了,VIM中最重要的技巧之一就是命令间的配合使用
行位置插入
在一行的结尾处追加
在一行的开头处插入
在光标所在位置的下一行打开新行插入
在光标所在位置的上一行打开新行插入
当然,如果你认为先移动光标然后插入或追加慢了,那么就应该用上面这种方法
它们是以行做单位
在这里我还是需要提醒一下,命令前加数字代表执行次数
tips1:10I*&Esc&先输入10,然后输入i,接着输入*号,最后按&Esc&
 这样就可以在一行开头输入十个*
tips2:同样,5o###&Esc&先输入5,然后输入o,接着输入###,最后按&Esc&
这样就可以在下列5行中每一行开头插入###
看,这样一来,再需要输入重复文本的时候就变得方便了对不对,你可以自己试着扩展思维……
但我依然会不厌其烦的提醒你,命令的组合也是最重要的技巧之一
有时候你也许会想合并两行
你只需要把光标移动到首行,然后按3次J即可
让我感觉奇怪的是,我直接使用3J却只能合并两行,4J才能合并3行
谁来告诉我为什么
这一节我们来看看删除,删除命令比较简单,不过要使删除更有效率
你需要配合我们第一节中讲的各种移动命令
删除光标所在处字符
删除光标所在前字符
这里没有什么可注意的地方,但需要说明一下的是
通常情况下,新手一旦着急便会按着x不动,从而达到删除一大块文本的目的
如果是头几天使用还好说,但从长久考虑,你还需要学习下面的删除命令
删除到下一个单词开头
删除到本单词末尾
删除到本单词末尾包括标点在内
删除到前一个单词
删除到前一个单词包括标点在内
很明显,d是delete的缩写,而上面的x则是老式的清除意思
这里e表示往前删除一个单词,b表示往后删除一个单词,第一节中移动写的很清楚
要注意的是e b会忽略标点,如don't,它们会把这当做三个单词don、‘ 和 t 来删除
而大写的E B则不会
删除一整行
删除光标位置到本行结尾
删除光标位置到本行开头
这三种用法是最好理解的
我一开始便说过,删除命令需要配合移动命令才能发挥更多作用
你可以看看第一节内容,然后自己尝试着删除一节或一段内容等
tips:3dd代表删除三行,聪明的你一定早就知道了
http://www.cnblogs.com/nerxious/archive//2828520.html
我想每个Coder都深刻的明白,修改这一操作在代码的世界里是多么重要
与其说修改,无非就是删除了再插入,但VIM把这两者结合的很有效率
闲话少说,让我们再次使用这轻快的VIM在code上起
单个字符替换
更改大小写
很简单,多试试就行了
tips:4~更改连续4个字符的大小写,很有意思
从光标处修改到单词结尾
从光标处修改到单词开头
这里直接使用cw或cb操作很简单,要注意的是加数字的使用方式
此时2cw 或者 c2w都可以使用,功能一样
从光标修改到本行末尾
从光标修改到本行开头
删除整行从头修改
删除光标所在位置的字符,然后插入
这里有点难记,主要是多练习才能看到效果
其中,c$和C功能是一样的,都是从光标修改到行尾,d$+a达到相同效果
c0和d0+i效果一样,区别是少输入一次
cc和S效果也是一样,其实S是属于插入的范畴,这里类似,所以一起讲了
再来是s,它会删除光标处的字符再插入,效果等同于x+i或c+space
多行修改我想就不用说了,前面加上数字再组合命令就可以了
从上面看来,我们应该可以更深刻的认识到,VIM中大部分命令是组合使用的
利用好了这点才能更快的摸索出自己的使用习惯,从而高效修改
操作相同文本的时候复制尤其有效,在Windows中我们都习惯了先用鼠标选择文本
而Vim下则不用那么麻烦,你甚至可以使用可视模式操作,但这里先略过
我在这一节主要说说命令模式下的复制
在讲复制之前我要先说一个简单到不行的命令
复制的形式可以很多,但是粘帖的形式却没多少
无非就是加数字达到多次粘帖什么的
其实准确的说,p应该是放置的意思
不过我也搞不清是paste还是put的缩写
单词和字符复制
向右复制n个字符
向左复制n个字符
向前复制n个单词
向后复制n个单词
由于复制操作通常是在量比较大的情况下进行
所以这里我使用了n代替需要操作的个数
需要说明的是,这里看起来并没有多大意义
因为复杂字符和单词还没有直接插入的方式来的快
复制到行首
复制到行末
从当前行复制到屏幕顶端
从当前行复制到屏幕低端
这里前两条用的也比较少
但是整行或多行复制才是yy的方便之处
tips:1. 4yy也就是复制4行
2.y几乎可以跟任何光标移动命令结合,不信你试试
说完了复制这里顺便把剪切的命令也说下
其实剪切很简单,就是先删除,然后按p粘帖
比如dd删除一行后,这一行会被放入缓冲区
接着移动到你想放置的位置,按p,就被粘帖好了
恢复在VIM里比较简单,不过想要具体恢复到某个时间段很难
就我的经验而言,有时候使用恢复还不如删了重写
这里我们来讲讲恢复、撤销和重复命令的使用
撤消上次命令
如果有使用office的经验,那么这里的撤销和重做应该很好理解
比如我用dw删除一个单词,按下u就会回到没删除之前
一旦我后悔了,ctrl+r便会重新删除一次
其中U也十分好用,它能恢复本行内容,无论你在本行做过什么
需要注意的是,你不能在别处操作多次后再回到那一行来恢复
接着.号能够重复你上次命令
比如dd删除一行,你接着按一次.就相当于重新使用一次dd命令
如果你按5.那就是重复dd5次了
最后e!就牛逼了,当你把代码写的无比凌乱之时
它能恢复到最初形态,只要你还没使用过w、wp或x保存
Vim 添加注释 详解
一、手注释动 vim下
1.插入注释:按Ctrl+v进入virtual模式
用上下键选中需要注释的行数
按大些“I”进入插入模式,输入注释符“#”,
然后立刻按下ESC(两下)
2.删除注释先按v进入列模式横向选中列的个数(如"/ /"注释符号,需要选中两列),
再按Esc 再按ctrl+v 进入列编辑模式,向下或向上移动光标按x、d键删除
vim 从 vim7 开始加入了多标签切换的功能, 相当于多窗口.
之前的版本虽然也有多文件编辑功能, 但是总之不如这个方便啦。
:tabnew [++opt选项] [+cmd] 文件
建立对指定文件新的tab
关闭当前的tab
关闭所有其他的tab
查看所有打开的tab
标准模式下:
gt , gT 可以直接在tab之间切换。
还有很多他命令, 看官大人自己, :help table 吧。
看过Swaroop的书之后,就越来越喜欢VIm了。
尤其是多窗口,真是非常Cool哦~
解释一下这是咋弄出来的:
在Vim中开多窗口其实比较简单,也有不只一种方法,直接使用命令:new默认就是打开一个水平分割的新窗口。另外一个命令就是:split(sp)。
但是默认水平分割多少有点不爽,因为本来屏幕就是宽屏的,代码几乎不会写那么长了,而真正缺少的垂直空间,所以这个时候就要用到垂直分割了,命令是:vsplit(vs),很简单了一目了然。
打开了这么多窗口不知道如何切换肯定不行啦。切换也很简单,组合键ctrl+w,然后通过j/k,来定位窗口,注意看好窗口光标变化。不过个人感觉这样比较麻烦,每切换一次窗口都要先按组合键才行。还好还有另一种方法,那就是直接连续按两次ctrl+w组合键,vim会自动跳到下一个窗口。
另外更改窗口宽度的命令是: Crtl+w & 将当前窗口向右边扩展一行,将 & 换成 & 就是向左边扩展一行。也可以在之前使用数字代表扩展的行数, 5 Ctrl+w & ,向右边扩展5行。
更改窗口高度类似,只是命令是Ctrl+w + ,增加高度,- 减小高度。1、打开多个窗口打开多个窗口的命令以下几个:横向切割窗口:new+窗口名(保存后就是文件名) :split+窗口名,也可以简写为:sp+窗口名纵向切割窗口名:vsplit+窗口名,也可以简写为:vsp+窗口名2、关闭多窗口可以用:q!,也可以使用:close,最后一个窗口不能使用close关闭。使用close只是暂时关闭窗口,其内容还在缓存中,只有使用q!、w!或x才能真能退出。:tabc 关闭当前窗口:tabo 关闭所有窗口3、窗口切换:ctrl+w+j/k,通过j/k可以上下切换,或者:ctrl+w加上下左右键,还可以通过快速双击ctrl+w依次切换窗口。4、窗口大小调整纵向调整:ctrl+w + 纵向扩大(行数增加):ctrl+w - 纵向缩小 (行数减少):res(ize) num
例如::res 5,显示行数调整为5行:res(ize)+num 把当前窗口高度增加num行:res(ize)-num 把当前窗口高度减少num行横向调整:vertical res(ize) num 指定当前窗口为num列:vertical res(ize)+num 把当前窗口增加num列:vertical res(ize)-num 把当前窗口减少num列5、给窗口重命名:f file6、vi打开多文件vi a b c:n 跳至下一个文件,也可以直接指定要跳的文件,如:n c,可以直接跳到c文件:e# 回到刚才编辑的文件7、文件浏览:Ex 开启目录浏览器,可以浏览当前目录下的所有文件,并可以选择:Sex 水平分割当前窗口,并在一个窗口中开启目录浏览器:ls 显示当前buffer情况8、vi与shell切换:shell 可以在不关闭vi的情况下切换到shell命令行:exit 从shell回到vi
from:http://hi.baidu.com/dtzw/blog/item/64a6f3f2fc10.html
vim是个优秀的编辑器,有很多功能你不知道。
比方说vim可以模拟多窗口(多tab)以及拆分窗口,可以同时编辑多个文件。
多tab时,每个tab可以编辑一个文件,但不同的tab不能同时显示,要切换。
拆分窗口后,窗口是同时显示的,每个窗口可以编辑一个文件。
两种方式可以同时生效的,现在试一下:
命令模式:输入sp,窗口就上下拆分成两个窗口了。
按ctrl+w然后再按c,就关掉当前窗口了。
连按两次ctrl+w,可以在窗口间切换。
输入vs,就是垂直拆分。
也可以多tab,输入命令tabnew,就创建一个新tab,命令tabn就切换到下一个tab,tabn3就切换到第三个tab,tabc就关掉当前tab。
具体看vim的手册,或者vim里help 某个命令。
vim 从 vim7 开始加入了多标签切换的功能, 相当于多窗口.
之前的版本虽然也有多文件编辑功能, 但是总之不如这个方便啦。
:tabnew [++opt选项] [+cmd] 文件
建立对指定文件新的tab
关闭当前的tab
关闭所有其他的tab
查看所有打开的tab
标准模式下:
gt , gT 可以直接在tab之间切换。
还有很多他命令, 看官大人自己, :help table 吧。
看过Swaroop的书之后,就越来越喜欢VIm了。
尤其是多窗口,真是非常Cool哦~
解释一下这是咋弄出来的:
在Vim中开多窗口其实比较简单,也有不只一种方法,直接使用命令:new默认就是打开一个水平分割的新窗口。另外一个命令就是:split(sp)。
但是默认水平分割多少有点不爽,因为本来屏幕就是宽屏的,代码几乎不会写那么长了,而真正缺少的垂直空间,所以这个时候就要用到垂直分割了,命令是:vsplit(vs),很简单了一目了然。
打开了这么多窗口不知道如何切换肯定不行啦。切换也很简单,组合键ctrl+w,然后通过j/k,来定位窗口,注意看好窗口光标变化。不过个人感觉这样比较麻烦,每切换一次窗口都要先按组合键才行。还好还有另一种方法,那就是直接连续按两次ctrl+w组合键,vim会自动跳到下一个窗口。
另外更改窗口宽度的命令是: Crtl+w & 将当前窗口向右边扩展一行,将 & 换成 & 就是向左边扩展一行。也可以在之前使用数字代表扩展的行数, 5 Ctrl+w & ,向右边扩展5行。
更改窗口高度类似,只是命令是Ctrl+w + ,增加高度,- 减小高度。
VIM 标签页 (tab)
新建标签页
使用:tabe命令和文件名参数,可以在新标签页中打开指定的文件。也可以使用:tabnew命令,在新标签页中编辑新的文件。命令:tab split将在新标签页中,打开当前缓冲区中的文件。
命令:tabf允许你在当前目录搜索文件,并在新标签页中打开。比如我想打开当前目录下的img.txt文件,那么就可以使用:tabf img.*命令。请注意,此命令只能打开一个文件,如果搜索出多个匹配文件,将提示你“文件名过多”,这时你需要给出更精确的搜索条件以打开文件。
Vim默认最多只能打开10个标签页。你可以用set tabpagemax=15改变这个限制。
列示标签页
命令:tabs可以显示已打开标签页的列表,并用“&”标识出当前页面,用“+”标识出已更改的页面。
关闭标签页
命令:tabc可以关闭当前标签页。而命令:tabo将关闭所有的标签页。
切换标签页
命令:tabn或gt可以移动到下一个标签页。而命令:tabp或gT将移动到上一个标签页。如果已经到达最后面或最前面的标签页,将会自动转向循环。
如果你打开了很多标签页,那么可以使用:tabfirst或:tabr命令,移动到第一个标签页。使用:tablast命令,移动到最后一个标签页。
移动标签页
如果你希望按照指定的次序排列标签页,那么你可以使用:tabm命令。请注意,标签页次序是从0开始计数的。比如命令:tabm 1将把当前标签页移动到第2的位置。如果你没有为:tabm命令指定参数,那么当前标签页将会被移动到最后。
配置标签页
默认情况下,只有用户新建了标签页才会在窗口上方显示标签栏,这是由选项set showtabline=1决定的。如果我们希望总是显示标签栏,那么可以用set showtabline=2命令来设置。如果我们希望完全不显示标签栏,那么可以使用set showtabline=0来设置。
多标签页命令
使用:tabdo命令,我们可以同时在多个标签页中执行命令。比如我们打开了多个标签页,需要把这些文件中的“food”都替换成“drink”,那么就可以使用:tabdo %s/food/drink/g命令,一次完成对所有文件的替换操作,而不用针对每个文件重复操作。
如果你使用的是带有图形界面的gVim,那么新建、关闭和打开标签页的操作,都可以通过在标签页上右击鼠标完成。只需要点击相应标签,就可以在不同的标签页间切换。
通过:help tab-page-intro命令,可以获得关于标签页使用的更多信息。
新建标签页
显示已打开标签页的列表
关闭当前标签页
移动到下一个标签页
移动到上一个标签页
移动到第一个标签页
移动到最后一个标签页
http://www.webinno.cn/blog/article/view/44
在 vi 中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很方便的进行光标定
位和编辑. 因此能更快一点移动光标是很有用的.文中的c-表示ctrl,大小写敏感。光标定位
还需结合搜索。
=== 光标定位 ==
向左移一个字符
向下移一行
向上移一行
向右移一个字符
移到下一个字的开头
移到下一个字的开头,忽略标点符号。默认的情况下W认为字符串时已空格分开的。
cp /mnt/marvell/main.sh /stv/
所以上面一行在W的选择下只有三个字符串,即 1 cp 2 /mnt/marvell/main.sh
这与w时不一样的。
移到下一个字的结尾
移到下一个字的结尾,忽略标点符号
移到前一个字的开头
移到前一个字的开头,忽略标点符号同W
移到当前行的第一列
移到当前行的第一列字符处,会忽略行前的空白。
移到当前行的第n列
移到当前行的第一个非空字符
移到当前行的最后一个字符
移到下一行的第一个字符
移到前一行的第一个非空字符
移到屏幕的最后一行
移到屏幕的中间一行
移到屏幕的第一行
移到文件的最后一行
移到文件的第n行
移到句子的开头
移到句子的结尾
移到段落的开头 //我用的时候发现{只是移动到前一个空行 }移动到后一个空行首
移到下一个段落的开头
/**vim 第一列插入{来定义一个段落 */
回到段落的开头处
向前移到下一个段落的开头处
用一个字母来标记当前位置,如用mz表示标记z
将光标移动到指定的标记,如用'z表示移动到z
此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查(此处时两个单引号不是双引号)
找到某个单词后, 再输入此命令则回到上次停留的位置.
此命令相当好使, 它移动光标到上一次的修改行.
此命令相当强大, 它移动光标到上一次的修改点.
从大括号的开始移动到大括号的结束位置
后边加行号就是跳到这一行
光标返回到以前的位置。相当于光标移动的“撤销”
光标返回到后来的位置。相当于光标移动的“恢复”
=== 屏幕定位 ==
将屏幕上滚一行
将屏幕下滚一行
将屏幕上滚半页
将屏幕下滚半页
将屏幕上滚一页
将屏幕下滚一页
将当前行置为屏幕的顶行
将当前行下的第n行置为屏幕的顶行
将当前行置为屏幕的中央
将当前行上的第n行置为屏幕的中央
将当前行置为屏幕的底行
将当前行上的第n行置为屏幕的底行
本文链接:http://www.webinno.cn/blog/article/view/43
最近读了一下Swaroop C H的&A Byte of Vim&,其中涉及到一些Vim命令,总结如下:
将光标下移7行
删除一个单词
搜索文件中当前光标所在处的单词
:50,100s/old/new/g 将第50-100行之间的"old"替换为"new"
“分割”视角,同时浏览一个文件的两个不同部分
打开以当前光标处的单词为文件名的文件
:colorscheme desert 更换色彩方案,将色彩方案换为desert
将Vim切换到插入模式
&Esc& 将Vim切换到正常模式
:%s/from/to/g 将全文中的"from"全部替换为"to"
表示替换,substitute
:0,10s/from/to/gc 将文本前10行中的"from"替换为"to",并在每次替换之前都要
用"yes"和"no"确认,c表示confirmation
&Enter& 所有命令模式下的命令都必须以&Enter&结尾,
来通知Vim命令已经结束
:help vim-modes-intro 查看Vim帮助文档中关于模式的介绍
:edit hello.txt/:e hello.txt 编辑hello.txt文件,如果该文件不存在,则新建一个hello.txt文件,
并进入编辑状态
保存刚刚编辑的文件
关闭当前窗口
强制关闭当前窗口
查看帮助信息
:help :edit
查看关于 :edit 的帮助信息
:help notation
:help keycodes
:echo "Hello, World!" 回显"Hello, World!"
搜索"hello",并显示第1个匹配
:help usr_toc 显示参考手册的目录
:help index
显示索引,可以通过在其中搜索感兴趣的话题
/insert mode 显示与插入模式相关的信息
由正常模式进入插入模式的几种方式:
将光标移到当前位置前的一个位置,并进入插入模式
将光标移动到所在行的行首位置,并进入插入模式
将光标移动打当前位置后的一个位置,并进入插入模式
将光标移动到所在行的行尾位置,并进入插入模式
在所在行之下开辟一个新行,并进入插入模式,光标在新行的行首
在所在行之上开辟一个新行,并进入插入模式,光标在新行的行尾
:help inserting 显示关于插入的帮助文档
用于替换的几个命令:
删除光标所在处的字符,并进入插入模式,主要用于替换,
其效果和“删除+插入”相同
删除光标所在行的所有内容,并进入插入模式,用于整行内容的替换
"replace",即替换,删除光标所在处的字符,
在输入要替换的字符后,自动回到正常模式下
多个字符的替换,光标处及之后的单词可以被替换
:help replacing
显示关于替换的帮助文档
在光标移动到所在处单词的第一个字母处,如果所在处为空白,
则移动到所在处前一个单词的第一个字母
由正常模式进入可视模式,以字符为最小选中单位,对内容进行选择
由正常模式进入可视模式,以行为最小选中单位,对内容进行选择
删除选中的内容,并由可视模式进入插入模式,对选中内容进行修改
移动当前光标,到其后第5的单词的结尾处
将光标移动到当前位置之后的单词的开头
寻找当前行光标之后第 3 次出现 "h" 的位置,将光标置于该处
将光标移动到下一段的开头
将光标向下移动35行
返回移动前光标所在位置
将 j 的 操作重复两次,即向下移动2行
将光标向右移动5次,和操作 l 5次 效果相同
将光标向左移动5次,和操作 h 5次 效果相同
将光标移动到行首
将光标移动到行尾
向上移动一个屏幕
向下移动一个屏幕
将光标移动到第50行的开头
将光标移动到文件的最后一行的行首
将光标移动的文件的第一行的行首
将光标移动到第一行的行首
将光标移动到最后一行的行首
将光标移动到中间一行的行首
以单词为单位进行光标移动:
将光标移动到下一个单词的开头
将光标向后移动 2 个单词,即移动到其后第 2 个单词的开头
若光标位于当前单词的最后一个字符上,
则将光标移动到下一个单词的结尾字符上;
若光标不位于当前单词的最后一个字符,
则将光标移动到当前单词的最后一个字符上。
若光标位于当前单词的最后一个字符上,
则将光标移动到其后第 2 个单词的结尾字符上;
若光标不位于当前单词的最后一个字符,
则将光标移动到气候第 1 个单词的结尾字符上。
若光标位于当前单词的第 1 个字符上,
则将光标移动到当前单词前一个的单词的第 1 个字符上;
若光标不位于当前单词的第 1 个字符上,
则将光标移动到当前单词的第 1 个字符上。
若光标位于当前单词的第 1 个字符上,
则将光标移动到当前单词前一个的单词的第 2 个字符上;
若光标不位于当前单词的第 1 个字符上,
则将光标移动到当前单词的第 2 个字符上。
:help word-motions
查看关于以单词为单位进行光标移动的帮助文档
以句子为单位进行光标的移动:
将光标由当前位置移动到下一句话句首字符的位置
若光标位于所在句子的句首字符位置,
则将光标移动到前一句的句首位置;
若光标不位于所在句子的句首字符位置,
将光标移动到所在句子的第 1 个字符的位置。
将光标由当前位置移动到其后第 2 句话句首字符的位置
若光标位于所在句子的句首字符位置,
则将光标移动到其前面 2 句话的句首位置;
若光标不位于所在句子的句首字符位置,
则将光标移动到其前面 1 句话的句首位置;
将光标移动到下一段段首的位置
将光标移动到上一段段首的位置
:help cursor-motions
查看与光标移动有关的帮助信息
在光标所在位置创建一个名为 a 的标记,记录光标位置
回到光标 a 所在的位置
回到原来的位置
到下一个位置
在可视模式下,选择光标所在处的一个段落
在可视模式下,选择光标所在处的的一个单词
在可视模式下,选择光标所在处由圆括号()包围的一个区域内
的所有内容
:help object-motions
查看与对象移动有关的帮助信息
:help text-objects
查看与文本对象有关的帮助信息
:help motions/various-motions 查看与移动有关的帮助信息
:help user-manual
查看用户手册
:help abbreviation
查看与缩写相关的帮助信息
在查看帮助信息时,将光标放在[&&]之间,
可以跳转到相关的帮助信息
:helpgrep phrase
寻找所有帮助文档,显示包含指定内容"phrase"的帮助信息
跳转到文档中下一个包含所搜索信息"phrase"的部分
跳转到文档中上一个包含所搜索信息"phrase"的部分
显示文档中包含"phrase"部分的列表
显示交换文件的名字
改变光标所在处字符的大小写格式
显示Vim寻找文件的默认路径
将光标移动到改行的第一个字符处
将光标所在处的字符删除
将光标所在处的单词删除
删除光标所在行的全部内容
赋值光标所在行的全部内容到剪贴板
复制光标所在段落的全部内容到剪贴板
在当前光标所在处之后的位置粘贴剪贴板的内容
在当前光标所在处之前的位置粘贴剪贴板的内容
将光标所在位置前(不含光标)的单词和光标所在位置后
(包含光标)单词转换
:help mark-motions
查看关于制作标签以记录位置的帮助文档
Undo,回到上次的内容
:earlier 4m
显示 4 分钟前的文本状态
:later 45s
显示 45 秒之后的文本状态
查看 undo 的列表
:help undolist
查看关于 undo 列表的说明信息
:help undo-redo/usr_32.txt
查看关于 undo 和 redo 的帮助文档
/something
在文档中搜索匹配"something"的部分
在搜索结果中跳至下一个匹配的搜索结果
在搜索结果中回到上一个匹配的搜索结果
/\&something\&
搜索只匹配"something"的部分,其中"something"独立,不能为某个
单词的一部分
搜索文档中的数字,以一个数字为单位来匹配结果
搜索文档中的数字,以一个数字或者多个数字为单位来匹配结果
:set foldmethod=indent
将前后缩进的文本尽心折叠处理,相同缩进被折叠在一起
将光标所在行及其之后相同缩进的文本折叠起来,不予显示
将光标所在行及其之后相同缩进的文本展开,显示其完整信息
具有zc和zo相同的功能,折叠时用于打开文本,打开时用于折叠文本
:help folding
显示与折叠相关的帮助信息
转到缓冲区 1 中的文件
删除缓冲区 1 中的文件
:buffers/:ls
显示所有缓冲区中的文件列表
:help buffer-list
显示与缓冲区有关的帮助信息
将当前屏幕(视角)分割,并创建一个新的未命名的缓冲区
:w test.txt
将当前缓冲区保存为 test.txt,如果该缓冲区为已经存在的文件,
则用给定文件名创建一个副本
Ctrl+w &方向键h,j,k,l&
在不同屏幕,即不同缓冲区之间切换
Ctrl+w Ctrl+w
在不同缓冲区之间进行切换
:sp/Ctrl+w s
将当前屏幕(视角)水平分割
:vsp/Ctrl+w v
将当前屏幕(视角)垂直分割
旋转视角,即将两个视角位置互换
将当前视角(缓冲区)放到最高的位置,其他视角向下移动
:resize 10
以行为单位重新调整当前视角的长度,如 :resize 10 表示将当前视角
调整为10行
将当前视角调整为最大,其他视角压缩大小
将所有视角的高度调整为相等
:help windows
查看与视角相关的帮助文档
创建一个新的缓冲区,并在一个新的标签页上打开
关闭当前标签页
调整各个标签页的顺序
将当前标签页调整到第 1 的位置
:tab help something
在新的标签页上显示某个条目的帮助文档
在屏幕上不同分屏处进行切换
生活的脚步,技术的点滴...
quickfix提高vim编程编译调试效率
以前使用vim编程时,在终端下面至少2个tab,一个编辑一个编译,编译出错时,切换到编辑tab页进行差错纠正。今天又学习了vim的quickfix模式,quickfix是vim自带的,无需插件。
vim由一个程序员开发,而且为更多的程序员所使用,所以在vim中加强了对软件开发的支持,quickfix模式的引入就是一个例子。所谓quickfix模式,它和Normal模式、Insert模式没什么关系,它只是一种加快你开发速度的工作方式。
Quickfix模式的主要思想是保存一个位置列表,然后提供一系列命令,实现在这个位置列表中跳转。
位置列表的产生可以从编译器的编译输出信息中获得,也可以由grep命令的输出信息中获得。
通常,我们在开发过程中,经常要写代码,编译,修改编译错误,这个过程会数十遍上百遍的重复。如果你是根据编译器输出的错误信息,打开出错的文件,找到出错的行,然后再开始修改,那效率未免太低下了。
利用vim的quickfix模式,可以大大加快这一过程,你可以在vim启动编译,然后vim会根据编译器输出的错误信息,自动跳到第一个出错的地方,让你进行修改;修改完后,使用一个快捷键,跳到下一个错误处,再进行修改,方便的很。
为了做到这一点,你首先要定义编译时所使用的程序,对大多数使用Makefile的项目来说,vim的缺省设置"make"已经可以满足要求了。如果你的项目需要用一个特殊的程序进行编译,就需要修改'makeprg'选项的值。
大家在学编程时大概都读过"hello world"程序,我们就以这个简单的例子为例,讲一下quickfix模式的用法。
该程序的内容如下,里面包含了三个小小的错误:
/* hello world demo */
#include &stdio.h"
int main(int argc, char **argv)
print("hello world\n");
输入编译命令了:
在使用":make"时,vim会自动编译,并把编译输出重定向到一个临时文件中,当编译出现错误时,vim会从上述临时文件中读出错误信息,根据这些信息形成quickfix列表,并跳转到第一个错误出现的地方。
对于我们上面的程序来说,光标会停在第三行,也就是第一个出错的位置,vim同时会提示出错信息。如果你没看清出错信息,可以输入":cc"命令,vim会更次显示此信息,或者干脆使用":cw"命令,打开一个quickfix窗口,把所有的出错信息显示出来,见下图:
现在我们知道错在哪儿了,修正一下,然后使用":cn"命令(或者在Quickfix List对应行上输入回车)跳到下一个出错的地方,以此类推,直到修正全部错误。
好了,千辛万苦,我们的hello world终于工作了。乍一看这个例子,似乎Quickfix并没有提高什么效率,但如果你的错误出现在多个不同目录的不同文件里,它可以帮你省很多时间,使你可以集中精力在修正bug上。
vim可以同时记住最新的10个错误列表,也就是说你最近10次使用":make"命令编译所遇到的错误都保存着,可以使用":colder"和":cnewer"命令,回到旧的错误列表,或者到更新的错误列表。
在quickfix模式里经常用到的命令有:
:cc 显示详细错误信息 ( :help :cc )
:cp 跳到上一个错误 ( :help :cp )
:cn 跳到下一个错误 ( :help :cn )
:cl 列出所有错误 ( :help :cl )
:cw 如果有错误列表,则打开quickfix窗口 ( :help :cw )
:col 到前一个旧的错误列表 ( :help :col )
:cnew 到后一个较新的错误列表 ( :help :cnew )
更多的命令,以及这些命令更详细的解释,请参见手册。
对于经常用到的命令,最好提供更方便的使用方法,在我的vimrc中的定义:
autocmd FileType c,cpp map &buffer& &leader&&space& :w&cr&:make&cr&
nmap &leader&cn :cn&cr&
nmap &leader&cp :cp&cr&
nmap &leader&cw :cw 10&cr&
现在使用",&space&"(先按,再按空格)就可以编译,使用",cp"和",cn"跳到上一个和下一个错误,使用",cw"来打开一个quickfix窗口。这下顺手多了!
如果你希望跳转到出错的文件时,使用一个分隔的窗口打开,请参阅'switchbuf'选项的值。
在vim7中,每个窗口都可以拥有自己的位置列表,这样,你就能够同时打开多个位置列表了,而quickfix列表在整个vim中只有一个。你可以使用位置列表来显示编译错误信息,具体命令参阅手册:":help location-list"以及":help :lmake"。
结合文章http://dongpingli.blogspot.com/2009/03/makefile_27.html编写的通用makefile,这下在写新程序时,直接copy makefile到程序目录,在vim里面写完程序后直接make,然后查错修改在一个tab下,省得来回tab切换,效率会提高不少。
http://www.cnblogs.com/lidp/articles/1696053.html
http://hi.baidu.com/tjuer/item/638a9bb045ab0
http://www.cnblogs.com/mo-beifeng/archive//2259356.html
今天发现在vim中浏览代码不太方便, 每次总是需要搜索函数名。只好去试试传说中的taglist插件了! 用完后发现,taglist的确不错,很方便. 下面是安装的步骤和简单的使用入门介绍.
1& taglist的安装.
推荐文章: (按照上面的步骤一步一步走就行了)
http://vim-taglist.sourceforge.net/installation.html
http://www.vim.org/scripts/script.php?script_id=273
(含官方下载地址)
2& 简单配置和上手入门
为了使用方便,建议修改一些设置选项.
(在.vimrc中设置)
常见的设置有:
★ let Tlist_Show_One_File = 1
"不同时显示多个文件的tag,只显示当前文件的
★ let Tlist_Exit_OnlyWindow = 1
"如果taglist窗口是最后一个窗口,则退出vim
★ let Tlist_Use_Right_Window = 1
"在右侧窗口中显示taglist窗口下面介绍常用的taglist配置选项,你可以根据自己的习惯进行配置:
- Tlist_Ctags_Cmd选项用于指定你的Exuberant ctags程序的位置,如果它没在你PATH变量所定义的路径中,需要使用此选项设置一下;
- 如果你不想同时显示多个文件中的tag,设置Tlist_Show_One_File为1。缺省为显示多个文件中的tag;
- 设置Tlist_Sort_Type为”name”可以使taglist以tag名字进行排序,缺省是按tag在文件中出现的顺序进行排序。按tag出现的范围(即所属的namespace或class)排序,已经加入taglist的TODO List,但尚未支持;
- 如果你在想taglist窗口是最后一个窗口时退出VIM,设置Tlist_Exit_OnlyWindow为1;(very useful ~~~)
- 如果你想taglist窗口出现在右侧,设置Tlist_Use_Right_Window为1。缺省显示在左侧。
- 在gvim中,如果你想显示taglist菜单,设置Tlist_Show_Menu为1。你可以使用Tlist_Max_Submenu_Items和Tlist_Max_Tag_Length来控制菜单条目数和所显示tag名字的长度;
- 缺省情况下,在双击一个tag时,才会跳到该tag定义的位置,如果你想单击tag就跳转,设置Tlist_Use_SingleClick为1;
- 如果你想在启动VIM后,自动打开taglist窗口,设置Tlist_Auto_Open为1;
- 如果你希望在选择了tag后自动关闭taglist窗口,设置Tlist_Close_On_Select为1;(这个应该比较方便,好用)
- 当同时显示多个文件中的tag时,设置Tlist_File_Fold_Auto_Close为1,可使taglist只显示当前文件tag,其它文件的tag都被折叠起来。(这个也不错! )
- 在使用:TlistToggle打开taglist窗口时,如果希望输入焦点在taglist窗口中,设置Tlist_GainFocus_On_ToggleOpen为1;(useful~~)
- 如果希望taglist始终解析文件中的tag,不管taglist窗口有没有打开,设置Tlist_Process_File_Always为1;
- Tlist_WinHeight和Tlist_WinWidth可以设置taglist窗口的高度和宽度。Tlist_Use_Horiz_Window为1设置taglist窗口横向显示;
在taglist窗口中,可以使用下面的快捷键:
跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
在一个新打开的窗口中显示光标下tag
显示光标下tag的原型定义
更新taglist窗口中的tag
更改排序方式,在按名字排序和按出现顺序排序间切换
taglist窗口放大和缩小,方便查看较长的tag
打开一个折叠,同zo
将tag折叠起来,同zc
打开所有的折叠,同zR
将所有tag折叠起来,同zM
跳到前一个文件
跳到后一个文件
关闭taglist窗口
可以用“:TlistOpen”打开taglist窗口,用“:TlistClose”关闭taglist窗口。或者使用“:TlistToggle”在打开和关闭间切换。
在我的.vimrc中定义了下面的映射,使用“,tl”键就可以打开/关闭taglist窗口:
map &silent& &leader&tl :TlistToggle&cr&
本文参考在此表示感谢。
首先在建立~/.vim,以后所有的插件都存放在此。在.vim下分别建立doc、syntax、plugin三个文件夹分别存放插件帮助文档、语法文件、插件。
软件功能:用于产生一个tags文件(代码索引文件),tags文件中记录的源文件的索引以帮助你快速得找到某个符号的定义。它支持相当多的语言,如C、C++、C#、Shell等等。后面所有的包括函数列表显示,变量定义跳转,自动补全等,都要依赖于它。
ctags的全名叫做“Exuberant Ctags”,可以从新立得里面找到。
可以通过在vim中输入
:!ctags -R
在当前路径下建立一个tags文件,然后就可以在vim中使用跳转功能了。其中的-R选项是递归搜索子目录下的相关符号。所谓跳转就是可以随时转到自己想要的函数、类型、结构体、类等等的定义处。比如光标处于任意位置时可以普通模式下输入
:ta func_name
就可以直接将光标定位到func_name函数处。当然,其他的命名也可以使用这种方法进行快速定位。另外就是可以在光标指向一个函数名时按下Ctrl+],马上跳转到这个函数的定义。在跳转到定义位置之后,可以按下Ctrl+o快速返回原来的编辑位置。
如果tags文件不再当前目录下则用
:set tags=filename
PS:ctags是一个程序用于生成tags文件。tags文件是当前目录下所有源文件的标签链接文件。在一个没有ctags的vim中只是无法生成新的tags文件,但是已有的tags文件仍然可以使用。
2、taglist
下载地址:
在Vim的一个垂直或水平的分割窗口中显示一个文件中定义的tags(函数,类,结构,变量等)。
在.vimrc中加入如下设置:
"不同时显示多个文件的tag,只显示当前文件的
let Tlist_Show_One_File=1
"如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Exit_OnlyWindow=1
在vim中用如下命令打开taglist窗口
将taglist帮助文件放在~/.vim/doc目录下,如果需要使用:help taglist.txt命令查看帮助文档,需要事先在vim中执行如下命令:
:helptags ~/.vim/doc
使用:将光标移动到taglist窗口的tag上面,按回车即可跳转到此tag的定义处,如果只想查看此tag的完整名称表达,按空格。
3、WinManager
下载地址:
WinManager可以在vim中像taglist一样开一个窗口来浏览工程文件。其实vim自带了文件浏览的插件netrw.vim。只不过WinManager将taglist和netrw整合在了一起。在WinManager界面上可以用下面的一些命令来进行常用的目录和文件操作: &F1&
如果光标下是目录, 则进入该目录; 如果光标下文件, 则打开该文件
返回上级目录
切换vim 当前工作目录正在浏览的目录
删除目录或文件
切换显示方式
文件或目录重命名
选择排序方式
定制浏览方式, 使用你指定的程序打开该文件
在.vimrc中加入如下配置:
"设置WinManager与TagList的布局:前者在上,后者在下
let g:winManagerWindowLayout='FileExplorer|TagList'
"映射WinManager快捷键,在normal模式下按wm,控制开启和关闭
nmap wm :WMToggle&CR&
4、MiniBufExplorer
下载地址:
简单的说就是标签页文件。当vim打开单个文件的时候,MiniBufExplorer没什么作用。当打开两个以上的文件时,MiniBufExplorer会在vim的上面打开一个新的窗口空间,列出了已经打开的文件。把光标放到这个窗口上面时,可以有如下的几个命令使用: &Tab&
向前循环切换到每个buffer名上
向后循环切换到每个buffer名上
在打开光标所在的buffer
删除光标所在的buffer
下面的两个功能需要在.vimrc中加入:
let g:miniBufExplMapCTabSwitchBufs = 1
向前循环切换到每个buffer上,并在但前窗口打开
向后循环切换到每个buffer上,并在但前窗口打开
如果在.vimrc中设置了下面这句:
let g:miniBufExplMapWindowNavVim=1
则可以用&C-h,j,k,l&切换到上下左右的窗口中去,就像:
C-w,h j k l
向"左,下,上,右"切换窗口.
在.vimrc中设置:
let g:miniBufExplMapWindowNavArrows=1
是用&C-箭头键&切换到上下左右窗口中去.
主要命令:
:MiniBufExplorer
" Open and/or goto Explorer
:CMiniBufExplorer
" Close the Explorer if it's open
:UMiniBufExplorer
" Update Explorer without navigating
:TMiniBufExplorer
" Toggle the Explorer window open and closed.
5、在工程中查找——Grep
下载地址:
对光标所在的词来个全工程范围的grep。 :Grep
按照指定的规则在指定的文件中查找
同上, 但是是递归的grep
:GrepBuffer
在所有打开的缓冲区中查找
在vim的argument filenames (:args)中查找
运行递归的fgrep
运行递归的egrep
运行递归的agrep
上面的命令是这样调用的: :Grep
[&grep_options&] [&search_pattern& [&file_name(s)&]]
[&grep_options&] [&search_pattern& [&file_name(s)&]]
[&grep_options&] [&search_pattern& [&file_name(s)&]]
:Rfgrep [&grep_options&] [&search_pattern& [&file_name(s)&]]
[&grep_options&] [&search_pattern& [&file_name(s)&]]
:Regrep [&grep_options&] [&search_pattern& [&file_name(s)&]]
[&grep_options&] [&search_pattern& [&file_name(s)&]]
:Ragrep [&grep_options&] [&search_pattern& [&file_name(s)&]]
:GrepBuffer [&grep_options&] [&search_pattern&]
:Bgrep [&grep_options&] [&search_pattern&]
:GrepArgs [&grep_options&] [&search_pattern&]
为了简化操作,在.vimrc中加入如下配置:
nnoremap &silent& &F3& :Rgrep&CR&
将光标移到需要查找的单词上面,按F3即可。比如查找ABC:
在最下面的命令行会显示:
Search for pattern: ABC
此时你还可以编辑该行, grep支持正则表达式。
按下回车后,在最下面的命令行会显示:
Search in files: *
是问搜索范围, 默认是该目录下的所有文件, 此时你还可以编辑该行, 比如你只想搜索源码文件:
Search in files: *.c *.h
然后在按下回车, 会在弹出的QuickFix窗口中列出所有符合条件的搜索结果, 你可以在其中查找你想要的结果。
6、NERD_commenter——添加注释
下载地址:
&leader&cc 添加注释
&leader&cu 取消注释
7、Python代码折叠——python_ifold
下载地址:
python_ifold是python_fold的改进版本。
可实现Python代码的折叠。打开Python脚本时会发现所有的代码已经折叠了,其中还现了折叠部分拥有的行数。在折叠的行按下zo可以打开折叠,按下zc会折叠上代码。python_ifold是默认启用的。
8、pydicton——python代码智能补全
下载地址:
pydiction-1.2中有四个文件,除了帮助文档和插件之外,还有两个分别是:complete-dict和pydiction.py。
其中complete-dict放在~/.vim/tools目录下。pydiction.py是可选文件,官网上的解释是:
Python script used to generate the dictionary. You can optionally run this script to add more modules to complete.
.vimrc中需要如下配置:
autocmd FileType python set complete+=k~/.vim/tools/complete-dict
9、NERD_tree
下载地址:
由于WinManager的fileexplorer功能不能自动更新,相比之下NERD_tree就强大许多了。
10、AutoComplPop——自动提示
下载地址:
解压之后会有三个文件夹,全部放到.vim目录下。特别是别忘了autoload这个目录下的acp.vim也要放到.vim相应的autoload目录下。
11、vimIM——vim的中文输入插件
下载地址:
ctrl+\ 直接在vim中切换输入法。也可以输入英文,然后ctrl+6,显示中文。
12、auto-pairs——括号自动配对
下载地址:
13、xml编辑插件——标签自动配对
下载地址:
也支持html、xhtml、docbk、xsl等。详见主页说明。
没有更多推荐了,}

我要回帖

更多关于 ofcfie这几个字母是什么单词 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信