+ -
当前位置:首页 → 问答吧 → Linux推广——Vim使用方法之一(9.13完成)

Linux推广——Vim使用方法之一(9.13完成)

时间:2011-09-13

来源:互联网



上一篇推广里介绍了主流的文本编辑器。链接:http://bbs.icpcw.com/viewthread. ... &extra=page%3D1。这篇推广主要介绍Vim。

Vim是Vi IMproved的缩写。是本身就很强大的vi的升级版。Vim的设计理念是手不用离开标准打字位置和小内存。虽然占用内存少,但功能还是应有尽有。

打开文件的方法是
  1. vim [文件名]
复制代码
vim不支持像less那样使用管道,如果对vim使用管道,vim会把所有的输入当成文件名来看待。Vim的界面分两部分。最下面一行是状态栏,在输入命令的时候,也是命令行。剩下的区域都是编辑区。行首只有一个"~"的行代表文件里不存在的行。

我对vim的了解还是比较浅薄的,简单讲讲:
vim分三种模式,普通模式,命令模式和编辑模式。
普通模式时,不能对文件进行编辑。vim等待用户输入命令。
命令模式,用户开始输入命令,但是命令没有输入完成,等待用户继续完成命令。不同命令的命令模式不尽相同。
编辑模式,用户输入文本以修改文件。
vim默认为普通模式。在命令模式和编辑模式中可以按ESC回到普通模式。
先说说普通模式下的我常用命令,以下是按单个按键的命令
k、j、h、l,分别是上、下、左、右。
i,在光标当前位置插入文本,并进入编辑模式
a,在光标后位置插入文本,并进入编辑模式。
o,另起一行,并进入编辑模式。
u,撤销,并将撤销堆首项推入回复堆。
Ctrl+R,回复,并将回复堆首项推入撤销堆。
$,shift+4,前进到当前行尾。
0,回到当前行头。
w、b,以单词为单位前进、后退。
t,移动到指定字符前并进入命令模式,等待用户输入那个指定字符。
v,以字符为单位选择,并进入命令模式,用kjhl或移动类命令移动光标。按ESC取消或者输入一个命令。
V,shift+v,以行为单位选择,并进入命令模式。用jk或移动类命令移动光标,按ESC取消或者输入一个命令。
p,在光标位置后,或光标位置行后粘贴。
r,替换光标当前字符,进入命令模式等待用户输入一个字符并完成替换。
R,shift+r,进入替换模式,输入的文本会依次替换文件现有文本。
',单引号。回到上次用移动命令前的位置。
.,就是句号。重复上一条命令,或者上次进入编辑模式输入的文字再输入一遍。
ZZ,shift+zz,虽然是两个字符,但是不算复杂命令。保存并退出。
再说说怎么组合命令。组合有几种组合方法。第一种是在命令前加数字。大多简单命令前加数字代表重复执行几次这样的命令。比如说“3w”代表以单词为单位前进三次。“3i”代表将退出编辑模式前输入的文本重复三次。“3p”代表粘贴三次…………………………其他的自己摸索,反正按“u”撤销。另外一种组合方式是在复杂命令后添加移动类命令,移动类命令前还可以添加数字来修饰移动类命令。比如说“vtx”代表选择当前字符到最接近的字符“x”前。
复杂命令每个都要单独说。
g系列,移动到某行。
gg,移动到第一行行首。
23gg,移动到第23行行首。
GG,移动到最后一行行首。

d系列,删除。注意,删除的内容都会进入复制的缓冲,会覆盖之前复制的内容。可以按p进行粘贴。比如说我想复制一个单词,我不用后面的y命令,而是删除要复制的单词,然后按u撤销,再粘贴。
dd,删除当前行。
如果当前在v/V命令的选择模式,按d删除选择内容。
d4d,删除当前行开始的四行。
d+移动类命令,删除当前光标到目标前的内容。
dj,删除两行,相当于d2d。
d3j,删除四行,相当于d4d。
dtx,删除到最近一个“x”字符前。
d2tc,删除到第二近的“c”字符前。
dgg,删除当前行到第一行,包括当前行和第一行。
d23gg,删除当前行到第23行,包括当前行和第23行。
dw,删除当前光标到单词尾。
diw,删除当前光标所在单词。<-----特殊
y系列,复制。
yy,复制当前行。
y5y,复制五行。
y+移动类命令跟d系列一样。也有yiw,复制当前单词。


:命令
vim里面另外一类的命令像命令行一样。按":",就是shift+;,进入“命令行”模式。每条命令需要按回车才执行。
:q,不保存退出。如果有修改未保存,提示,不退出。
:w,保存。
:wq,保存并退出。
:q!,不保存强制退出。
:e [文件名],打开指定文件。如果省略文件名,重新打开当前文件。


看看够长了,再长也没人看了。更加复杂的命令下次再说。

作者: jiang925   发布时间: 2011-09-13

留楼

作者: jiang925   发布时间: 2011-09-13



可以添加各种插件来让vim更顺手,我用的有taglist,txtbrowser,还有自动缩进,和彩色字体功能。
感觉vim真正强大之处在于和各种插件的配合来使vim更高效。
至于emacs,我只会用来上IRC和浏览网页。

作者: woodelf   发布时间: 2011-09-13

回复 woodelf


不都说了更复杂的东西下次再写嘛……
taglist和txtbowser没用过。搜了一下,看着像搞纯文本的
我用外部程序ctags来索引代码。

作者: jiang925   发布时间: 2011-09-13