分类目录

展开|收起

看你喜欢

(1) (1) (42) (1) (1) (1) (16) (2) (1) (1) (4) (1) (2) (7) (4) (1) (1) (1) (1) (3) (1) (5) (1) (1) (1) (1) (1) (2) (1) (4) (4) (3) (1) (1) (2) (1) (37) (2) (1) (5) (3) (1) (4) (1) (1) (11) (3) (1) (9) (3) (1) (23) (2) (1) (2) (1) (1) (1) (1)

最新精华

应该记住哪些vi/vim常用命令?

vi-1

:set nu 显示行号

编码用得多的还是Windows下的编辑器,如各种IDE,或者Source Insight,UE之类的,实际工作中即使编写Linux下的程序,也可以选择SAMBA共享的方式来在Windows下来编码。通常觉得,能完全用Linux下的编辑器(如Vim/Emacs)来工作的,那就不是一般人,既然对Linux如此痴迷,那水平肯定也不会太差。但Linux的用法的确会困扰很多人,就连《Thinking In Java》的作者Bruce Eckel也承认Cygwin给他带来了很多便利,同时感叹说如果十几年前当他被Gnu Emacs搞得头脑发晕的时候有这些Windows工具就好了。当然,他肯定对Emacs也已很熟练了,绝非初学者的那种晕。

即使可用Windows来解决日常的编码工作,但难免有需要Linux的编辑器的时候,比如看个配置文件,改个配置脚本,写个test.c测试个小功能,这时如果能直接在Linux下搞定还是很好的,至少是节省了时间。而且有时候,也不一定有搞好的SAMBA共享。所以掌握一点vi/vim的编辑命令,至少能在这些场合还能对付一下。

vi/vim主要靠键盘,命令很多,不是经常用的话,不仅记不住,而且给人造成很大困扰。比如vi打开一个文件后,默认的不是编辑模式,修改不了内容,如果不知道如何切换到编辑模式,就会有很无助的感觉。最打击人的是,连退出也不知道怎么操作,只好关掉shell再开一个,留下心理阴影了。这些经历相信第一次用vi/vim时,许多人都会遇到,或者是一开始会,好久不用又忘了,最后就会导致对它敬而远之,想其它方法搞定了,哪怕要花费更多时间,但好歹会弄。

那哪些是应该记住的vi/vim命令呢?会了这些,就能进(打开文件)退(优雅退出)自如)?也不是想熟练应用各种快捷键,只是想能应付基本的编辑即可,相信这是许多人对vi的使用需求。

小编认为以下6组命令要记住,就基本OK了

(1):set nu 显示行号,设定之后,会在每一行的字首显示该行的行号

(2)G 移动到这个档案的最后一行(常用)。 nG n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)

vi-2

15G 光标移到第15行

(3)dd 删除游标所在的那一整行(常用)。dG 删除游标所在行到最后一行的所有资料,所以如果游标已经在第一行(如刚打开一个文件时),dG就会删除全部内容

vi-3

dG 删除光标所在行到最后一行的所有内容

(4)进入编辑模式(输入文件内容的模式):按i或I 插入,在目前的游标所在处插入输入之文字,已存在的文字会向后退。其中, i 为『从目前游标所在处插入』, I 为『在目前所在行的第一个非空白字元处开始插入』。 (常用)

(5)退出编辑模式:按ESC,就进入一般模式,vi打开文件一开始进入的就是这个模式,此模式下可以执行如上面列的显示行号、删除整行等操作。

(6):q 离开 vi (常用)。:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~ 。:wq 储存后离开,若为 :wq! 则为强制储存后离开,或:x (常用)

下面列出了更多的命令,供参考:

一般模式∶ 移动游标的方法

h 或 向左方向键(←) 游标向左移动一个字元
j 或 向下方向键(↓) 游标向下移动一个字元
k 或 向上方向键(↑) 游标向上移动一个字元
l 或 向右方向键(→) 游标向右移动一个字元
如果想要进行多次移动的话,例如向下移动 30 行,可以使用 “30j” 或 “30↓” 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!
[Ctrl] + [f] 萤幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b] 萤幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
+ 游标移动到下一行的第一个非空字符处
- 游标移动到上一行的第一个非空字符处
n 那个 n 表示『数字』,例如 20 。按下数字后再按空白键,游标会向右移动这一行的 n 个字元。例如 20 则游标会向后面移动 20 个字元距离。
0 这是数字『 0 』∶移动到这一行的最前面字元处 (常用)
$ 移动到这一行的最后面字元处(常用)
H 游标移动到这个萤幕的最上方那一行
M 游标移动到这个萤幕的中央那一行
L 游标移动到这个萤幕的最下方那一行
G 移动到这个档案的最后一行(常用)
nG n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
n n 为数字。游标向下移动 n 行(常用)

一般模式∶ 搜寻与取代

/word 向游标之下寻找一个字串名称为 word 的字串。例如要在档案内搜寻 vbird 这个字串,就输入 /vbird 即可! (常用)
?word 向游标之上寻找一个字串名称为 word 的字串。
n 这个 n 是英文按键。代表『重复前一个搜寻的动作』的意思。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字串!
N 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
:n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字串,并将该字串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则∶
『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g 从第一行到最后一行寻找 word1 字串,并将该字串取代为 word2 !(常用)
:1,$s/word1/word2/gc 从第一行到最后一行寻找 word1 字串,并将该字串取代为 word2 !且在取代前显示提示字元给使用者确认 (conform) 是否需要取代!(常用)

一般模式∶ 删除、复制与贴上

x, X 在一行字当中,x 为向后删除一个字元 (相当于 [del] 按键), X 为向前删除一个字元(相当于 [backspace] 亦即是倒退键) (常用)
nx n 为数字,连续向后删除 n 个字元。举例来说,我要连续删除 10 个字元, 『10x』。
dd 删除游标所在的那一整行(常用)
ndd n 为数字。删除游标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
d1G 删除游标所在行到第一行的所有资料
dG 删除游标所在行到最后一行的所有资料
d$ 删除游标所在处,到该行的最后一个字元
d0 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字元
yy 复制游标所在的那一行(常用)
nyy n 为数字。复制游标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
y1G 复制游标所在行到第一行的所有资料
yG 复制游标所在行到最后一行的所有资料
y0 复制游标所在的那个字元到该行行首的所有资料
y$ 复制游标所在的那个字元到该行行尾的所有资料
p, P p 为将已复制的资料在游标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前游标在第 20 行,且已经复制了 10 行资料。则按下 p 后, 那 10 行资料会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
J 将游标所在行与下一行的资料结合成同一行
c 重复删除多个资料,例如向下删除 10 行,[ 10cj ]
u 复原前一个动作。(常用)
[Ctrl]+r 重做上一个动作。(常用)
这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,您的编辑,嘿嘿!很快乐的啦!
. 不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果您想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)

进入编辑模式

i, I 插入∶在目前的游标所在处插入输入之文字,已存在的文字会向后退; 其中, i 为『从目前游标所在处插入』, I 为『在目前所在行的第一个非空白字元处开始插入』。 (常用)
a, A a 为『从目前游标所在的下一个字元处开始插入』, A 为『从游标所在行的最后一个字元处开始插入』。(常用)
o, O 这是英文字母 o 的大小写。o 为『在目前游标所在的下一行处插入新的一行』; O 为在目前游标所在处的上一行插入新的一行!(常用)
r, R 取代∶r 会取代游标所在的那一个字元;R会一直取代游标所在的文字,直到按下 ESC 为止;(常用)
上面这些按键中,在 vi 画面的左下角处会出现『–INSERT–』或『–REPLACE–』的字样。 由名称就知道该动作了吧!!特别注意的是,我们上面也提过了,你想要在档案里面输入字元时, 一定要在左下角处看到 INSERT/REPLACE 才能输入喔!
Esc 退出编辑模式,回到一般模式中(常用)

指令列命令模式

:w 将编辑的资料写入硬碟档案中(常用)
:w! 若档案属性为『唯读』时,强制写入该档案。不过,到底能不能写入, 还是跟您对该档案的档案权限有关啊!
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
:wq 储存后离开,若为 :wq! 则为强制储存后离开,或:x (常用)
:e! 将档案还原到最原始的状态!
ZZ 若档案没有更动,则不储存离开,若档案已经经过更动,则储存后离开!
:w [filename] 将编辑的资料储存成另一个档案(类似另存新档)
:r [filename] 在编辑的资料中,读入另一个档案的资料。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。
:! command 暂时离开 vi 到指令列模式下执行 command 的显示结果!例如『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案资讯!
:set nu 显示行号,设定之后,会在每一行的字首显示该行的行号
:set nonu 与 set nu 相反,为取消行号!

更多命令说明参见:

emacs中文手册PDF版[整理]
标题: emacs中文手册PDF版[整理] (1117 次点击)
文件: emacs中文手册PDF版整理.pdf
大小: 1 MB
描述:
vim使用手册
标题: vim使用手册 (966 次点击)
文件: vim使用手册.pdf
大小: 3 MB
描述:
vim快捷键
标题: vim快捷键 (1030 次点击)
文件: vim快捷键.txt
大小: 12 kB
描述:

  打分:5.0/5 (共1人投票)
(浏览总计: 249 次)
Add Comment Register



发表回复

  

  

  

您可以使用这些HTML标签

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>