行其事,先利器, 把vim拣回来

来源:互联网 发布:怎么找淘宝店铺网址 编辑:程序博客网 时间:2024/05/01 21:32

一、打开文件、保存、关闭文件(vi命令模式下使用)

vi filename       //打开filename文件
:w       //保存文件
:w vpser.net //保存至vpser.net文件
:q          //退出编辑器,如果文件已修改请使用下面的命令
:q!        //退出编辑器,且不保存
:wq         //退出编辑器,且保存文件

ZZ //推出并保存

二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)

a      //在当前光标位置的右边添加文本
i       //在当前光标位置的左边添加文本
A     //在当前行的末尾位置添加文本
I      //在当前行的开始处添加文本(非空字符的行首)
O     //在当前行的上面新建一行
o     //在当前行的下面新建一行
R    //替换(覆盖)当前光标位置及后面的若干文本
J    //合并光标所在行及下一行为一行(依然在命令模式)

三、移动光标(vi命令模式下使用)

1、使用上下左右方向键

2、命令模式下:h   向左、j   向下 、k   向上、l  向右。
空格键 向右、Backspace  向左、Enter  移动到下一行首、-  移动到上一行首。

3. w : 向后移动一个单词, b 向前移动一个单词。 e向后移动到单词词尾, ge向前移动到一个单词的词首。 W, B, E移动的单词以空白符为分割符。

4. $ :移动到行尾, 0 移动到行首, ^ 移动到本行第一个非空字符

5. fx, 移动到本行下一个x字符,Fx,向前。 tx,移动到字符x前一个字符。 Tx,向前。

6. %括号匹配。

7. xG, 到x行。 G到最后一行, gg到首行。

8. 50%, 90%: 移动到文档的一半,90%处。

9. H, M, L  移动到可视范围内的头,中,尾。

10. CTRL-G: 显示目前位置, :set number  显示行号, :set ruler:显示光标的位置。

11. CTRL-U,向上移动半屏, CTRL-D向下移动半屏。

12. *命令, 查找光标坐在单词。 #命令,反方向。

13. /<  词首, >/ 词尾。

14. `m: 移动到m标签。 ``切换标签。 ms, 把当前位置作为s标签。

四、删除、恢复字符或行(vi命令模式下使用)

x         //删除当前字符
nx         //删除从光标开始的n个字符
dd      //删除当前行
ndd   //向下删除当前行在内的n行
u       //撤销上一步操作
U      //撤销对当前行的所有操作

Ctrl-R //撤销一个撤销

五、搜索(vi命令模式下使用)

/vpser     //向光标下搜索vpser字符串
?vpser     //向光标上搜索vpser字符串
n           //向下搜索前一个搜素动作
N         //向上搜索前一个搜索动作

六、跳至指定行(vi命令模式下使用)

n+        //向下跳n行
n-         //向上跳n行
nG        //跳到行号为n的行
G           //跳至文件的底部

七、设置行号(vi命令模式下使用)

:set  nu     //显示行号
:set nonu    //取消显示行号

八、复制、粘贴(vi命令模式下使用)

yy    //将当前行复制到缓存区,也可以用 "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
nyy   //将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
yw    //复制从光标开始到词尾的字符。
nyw   //复制从光标开始的n个单词。
y^      //复制从光标到行首的内容。  VPS侦探
y$      //复制从光标到行尾的内容。
p        //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴。
P        //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴。

x       删除光标下的字符 ("dl" 的缩写)X       删除光标前的字符 ("dh" 的缩写)D       从当前位置删除到行尾 ("d$" 的缩写)dw      从当前位置删除到下一个单词开头db      从当前位置删除到前一个单词的开头diw     删除光标上的单词 (不包括空白字符)daw     删除光标上的单词 (包括空白字符)dG      删除到文件末dgg     删除到文件首

九、替换(vi命令模式下使用)

:s/old/new      //用new替换行中首次出现的old
:s/old/new/g         //用new替换行中所有的old
:n,m s/old/new/g     //用new替换从n到m行里所有的old
:%s/old/new/g      //用new替换当前文件里所有的old

十、编辑其他文件

:e otherfilename    //编辑文件名为otherfilename的文件。

十一、修改文件格式

:set fileformat=unix   //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M。

十二、下是vim关于窗口分割的命令:(以下命令在最后一行模式下)

:split(开启另一个窗口察看同一文件)

:split 文件名(开启另一个窗口察看指定文件)

:vsplit(开启另一个窗口察看同一文件)

:vsplit 文件名(开启另一个窗口察看指定文件)

cntl+w+w:按住cntl键,同时按下两次w键。从一个窗口切换到另一个窗口(一般就会开两个窗口,多了会显得乱,所以记住这一个切换命令觉得就够了?)
cntl+w,+/-:按住cntl键,同时按下w键(这种组合应该是命令的开始标志),然后再按下+(增大窗口)或者-(减少窗口)(这时不按下cntl键)。
将光标切换到当前窗口下,然后按照关闭单个窗口的方法关闭窗口。例如:q命令。
关闭所有窗口文件:在所有关闭单个窗口的命令中加上all,例如:qall命令。
关闭除当前窗口之外的文件。:only。
        CTRL-W h        跳转到左边的窗口        CTRL-W j        跳转到下面的窗口        CTRL-W k        跳转到上面的窗口        CTRL-W l        跳转到右边的窗口        CTRL-W t        跳转到最顶上的窗口        CTRL-W b        跳转到最底下的窗口


十三、列编辑

ctrl-v 进入纵向编辑模式

移动游标到最后一行,可视块覆盖所要修改的列

进入修改模式

输入数字“5”

ESC 退出纵向编辑模式,同时所有被选中的数字都被改成了“5”,并回到命令模式


%跳转到配对的括号去[[跳转到代码块的开头去(但要求代码块中'{'必须单独占一行)gD跳转到局部变量的定义处''跳转到光标上次停靠的地方, 是两个', 而不是一个"mx设置书签,x只能是a-z的26个字母`x跳转到书签处("`"是1左边的键)>增加缩进,"x>"表示增加以下x行的缩进<减少缩进,"x<"表示减少以下x行的缩进

zz: 将当前行置于屏幕中间(不是转载…) 
zt: 将当前行置于屏幕顶端(不是猪头~) 
zb:底端啦~

vim切换buffer

  命令 ls 可查看当前已打开的buffer
  命令 b num 可切换buffer (num为buffer list中的编号)

  其它命令:
  :bn -- buffer列表中下一个 buffer
  :bp -- buffer列表中前一个 buffer
  :b# -- 你之前所在的前一个 buffer

  :bdelete num -- 删除第num编号buffer