`
tomcat_oracle
  • 浏览: 311534 次
社区版块
存档分类
最新评论

vim常用实用用法总结

阅读更多

首先vim有三种模式: 编辑模式,输入模式,末行模式

 


 

编辑模式: 也叫命令模式,用vim打开文件后默认进入的就是此模式,在此模式下,可以组合使用vim的一些命令,完成对文件的快捷操作,

 

字符移动操作:

 

h, j, k, l 四个键分别对应 左,下, 上, 右 操作, 这个左右比较好理解,h在左边,l在右边,j, k在中间表上下,但是我们正常惯用右手的人就有点不好理解,反正我是这样感觉的,正常按我的思维左边的表示上,右边就下了,比较顺手,所以我推测开发vi的人估计是个左撇赖子,很多有成就的牛逼的人都是左撇赖子,爱因斯坦。。。所以没事开发一下右脑也是有好处滴,, 关于这个马哥也有个助记的方法,就是j代表japan小日本鬼子,k代表korea棒子,在地图上棒子在鬼子的上面,所以k是向上的箭头,j是向下的箭头,当然了不管是什么方法只要能帮助记忆就中,黑猫白猫嘛

 

单词移动操作:

 

w word 向后移动一个单词,光标定位在词首

e  end of a word 向后移动一个单词,光标定位在词尾

b  backword 意思是向前移动一个单词

 

句子跳转:

 

) 跳到下一句

( 跳到上一句

 

段落间跳转

 

}  下一段

{ 上一段

句子间跳转和段落跳转不太常用,配置文件等的句子段落划分可能跟我们想的会有不同啦。

 

行间跳转

 

1G / gg 跳转至第一行

G  跳转至最后一行

#G  #为正整数,跳转至第#行

 

行内跳转

 

^ (shift + 6)  跳至行首(行首第一个非空字符),这个托字符在Linux中也是个神一样的存在,你会经常和打打交道

0 对,就是数字0,光标跳至绝对行首(真正的行首)

$ 这个美元可以跳到行尾,和^一样也是一个神一样的存在,各个地方你都会看到她的倩影

 

跳转进阶用法:

 

上面的这些个移动都是一个一个的移动的,如果要移动的位数比较多,恰好又不在行首或行尾,一个一个点,岂不是很麻烦?莫怕,作者早为你想到了,比如我想一下向上移动6个字符,按下6h,效果刷刷的,想一下向后跳8个词?按下8w,你懂的,那好吧不哆嗦,以此类推…… 3e, 4b, 5j, 7k, 9) …… 自己好好玩去吧,记住他并在使用的时候经常的想起他并经常的使用他,一般人我可不告诉他。当你基本脱离上下左右箭头的时候,你基本也就离大牛不远啦。

输入模式:

 

要从命令模式进入输入模式,方法有很多,根据需要来使用,注意看我后面标出的字母缩写

 

  • i insert 在当前光标之前插入
  • a append  在当前光标之后插入
  • I 大写在行首插入
  • A 大写在行尾插入
  • o 在当前光标所在行的下面一行插入
  • I  在当前光标所在行的上面一行插入

 

在任何模式下按下ESC键可以退出当前模式,回到命令模式,已经是命令模式的则还在命令模式。

 

编辑是可以了,复制呢,答案是肯定的,首先确定回到命令模式,

 

按下yy y是yanK的缩写,整行内容就被复制到剪切板中了,然后把光标移动到你想的位置按下p刚把刚才复制的那行粘贴到你光标所在行的下面一行,P大写则粘贴至上面一行,p是paste的缩写是也; 剪切的话dd是也,当前行的内容删除而后会放在剪切板中,粘贴方法相同。

 

再有一个比较高端的用法可以在命令模式下按下v(按字符选取)或者V(按行选取), 此时会进入可视化模式,移动你的光标哈哈,就像在windows下拖动你的鼠标一样,然后复制剪切随便你啦。。

 

还有个值得提一下的用法,就是如果想翻屏的话,可以用

 

  • ctrl + f (forward) 向后翻一屏,
  • ctrl + b (backword) 向前翻一屏,
  • ctrl + d  (down) 向后翻半屏
  • ctrl + u (down) 向前翻半屏

 

实用命令 d delete 删除命令,可以和其他命令组合删除词,字符,行,等

 

例如dh向左删除当前字符,dl向右删除当前字符,dj删除当前行和下面一行,dk删除当前行下上面一行,dw删除向后一个单词,de, db …

 

当然你还可以用 d1h, d2l, d#w, d#b(#用你需要的正整数代替) … ,如果需要重复之前的操作,只需按下” . “即可,需要重复多次就按下多次 “. “

 

和d稍微不同的还有一个命令c,这个命令是哪个单词缩写,我也不知道,用法和d用法类似,不同的是删除之后直接会进入insert编辑模式, 相当于d执行后又按下i

 

常用命令大概这么多了,还有个比较实用的用法:窗口的拆分: 当你编辑一个文档而又需要参照此文档其他章节的内容又不想再打开一个文档的时候就派上用场了, 这个功能类似于word里的窗口拆分,在word2007中,点 “视图” 菜单 –> “拆分“即可。在编辑文档的时候还是非常有用的。

 

在vim下,按下ctrl + w 然后按s, (split 缩写)则可以实现水平拆分,按下 v (vertical 缩写)则可实现垂直拆分,具体效果说是说不清楚的,自己体验一下吧。 需要两个窗口切换则先按下ctrl + w 然后按相应的上下左右→即可。需要退出的话:q 退出当前,:qall退出所有 :!qall 强制退出所有(这是末行模式命令下面会提到)

 

还有一个打开文档的技巧,vim + /path/to/file (相对或绝对路径定位到你要打开的文件) 直接打开到最后一行, vim +# /path/to/file 打开在第#行,

又想起来一个命令的撤消: 保证你在命令模式下,按一下u则可以撤消一步操作,按多次撤消多步操作,vim默认可以保存50次,这个值可以通过编辑/etc/vimrc 中 set history=50那一行的值改变,如果手贱撤消多了也8怕,按ctrl + r (restore) 可以恢复你的撤消, 按大写的U可以撤消所有操作。

9
1
分享到:
评论
1 楼 kidneyball 2013-12-15  
1. j,k的分别,记住食指比中指短,所以动食指是往下,动中指是往上就行了。
2. 我觉得text object应该上榜,这是vim的特色,编程中也很常用。例如 ci" 可以直接删掉字符串内容并进入插入模式。在复制粘贴相似代码时非常常用。

相关推荐

Global site tag (gtag.js) - Google Analytics