码迷,mamicode.com
首页 > 系统相关 > 详细

VIM编辑器的使用方法详解

时间:2015-06-26 15:11:13      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:vim

vim编辑器

文本编辑器,字处理器

nano、sed

vi:Visual Interface(可视化接口)

vim:VI Improved

模式编辑器、全屏编辑器


一:打开文件

# vim /path/to/somefile

  • vim +# /path/to/somefile 打开/path/to/somefile,并定位于文件第#行

    • 例如1:打开文件/etc/inittab,光标在 18 行

      # vim +18 /etc/inittab

  • vim + /path/to/somefile  打开/path/to/somefile,并定位于该文件的底部

    • 例如1:打开文件/etc/inittab,光标在 最后一行

      # vim + /etc/inittab

  • vim +/PATTERN:打开文件,定位至第一次被PATTERN匹配到的行的行首

    • 如:vim +/:initdefault  /etc/inittab 

编辑模式/命令模式:复制、粘帖、删除行...

输入模式:输入内容到文件

末行模式:文件管理命令

打开vim编辑器,默认处于编辑模式。

模式之间是可以相互转换的。

编辑 --> 输入

  • i:在当前光标所在字符的前面,转换为输入模式;

  • a:在当前光标所在字符的后面,转换为输入模式;

  • o:在当前光标所在行的下面,新建一行,转换为输入模式;

大写字母

  • I:在当前光标所在行的行首,转换为输入模式;

  • A:在当前光标所在行的行尾,转换为输入模式;

  • O:在当前光标所在行的上面,新建一行,转换为输入模式;

输入 --> 编辑

  • ESC

编辑 --> 末行模式(只能从编辑模式进入)

  • : 输入冒号即可

末行模式可以执行的命令:

  • 10d:删除文件中的第十行

  • 10,20d:删除文件中的第十行到第二十行;

  • set nu:显示行号

  • ! ls /etc/:执行shell命令,不影响当前文件编辑

末行模式 --> 编辑

  • ESC,ESC

输入模式到末行模式不能直接转换;


二:关闭文件

  • 末行模式关闭文件

    • :q:退出,不保存,如果已经编辑了文件内容,这样无法退出,会提示你文件已经发生了改变,让你确认是否保存

    • :wq:保存并退出

    • :q!:不保存退出

    • :w:保存,不退出

    • :w!:强行保存只读文件(只读文件对管理员root是不生效的,管理员可以使用w!强行保存文件)

    • :wq -- :x

  • 编辑/命令模式下退出文件

    • ZZ:保存退出(不用切换模式,就可以保存退出)


三:移动光标(编辑/命令模式)

  • 逐字符移动:可以用上下左右键,也可以:

    • h:左

    • l:右

    • j:下

    • k:上

    • 数字加上上面的移动键,可以向对应方向移动 n 个字符或行

  • 逐单词移动

    • w:向后移动到下个单词的词首

    • e:向后跳到当前或下一个单词的词尾

    • b:向前跳至当前或前一个单词的词首

    • 上述命令都支持加上数字,如:3w,4b,可以实现移动 n 个单词

  • 行内跳转/移动

    • 0:行首,绝对行首

    • ^:行首,行首的第一个非空白字符,相对行首

    • $:行尾,绝对行尾

  • 行间跳转

    • G:跳至最后一行

    • #G:向下跳至第#行行首

末行模式下跳转:直接给出行号,回车即可


四、翻屏操作

  • Ctrl+f:向下翻一屏,向文件尾部翻一屏

  • Ctrl+b:向上翻一屏,向文件首部翻一屏

  • Ctrl+d:向下翻半屏

  • Ctrl+u:向上翻半屏


五、删除单个字符

  • x:删除光标所在处的单个字符

  • #x:删除光标所在处及向后的共#个字符

六、删除命令d

  • d命令可以结合光标跳转命令一起使用,实现不同的删除效果。如:

    • d$:删除当前光标处到行尾的内容

    • d0:删除当前光标处到行首的内容

    • dw:逐个单词删除

    • 3dw:一次删除三个单词

    • #de:

    • #db:

    • dd:删除当前光标所在行

    • #dd:删除从光标所在行向下删除#行

    • 删除第10行到第20行(末模式下:1,8d)

  • 末行模式下删除指定行

    • :.,+5d:末行模式下删除从当前行开始到向下的5行,一共删了6行

    • (.表示当前行,$表示最后一行,+#表示想下的#行);

    • 当前行到倒数第三行:.,$-3

    • .:表示当前行

    • $:表示最后一行

    • +#:表示向下的#行


七、粘贴命令:p

  • 删除的内容并没有立即清除,而是保存在内存缓冲区中的。

  • 最后一次删除的内容,可以被粘贴到任意指定的地方,可以粘贴多次;

  • P:

    • 如果删除的或复制的为整行内容,则粘贴至光标所在处的下放;

    • 如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;

  • p:

    • 如果删除的或复制的为整行内容,则粘贴至光标所在处的上放;

    • 如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;

八、复制命令:y

  • 用法同d命令

  • yy:复制一行

  • 3yy、y0、y$...


九、先删除内容,再转换为输入模式(即:替换或修改)

  • c:用法同d命令


十、替换命令

  • r:替换单个字符

  • R:进入替换模式,类似insert键。ESC退出替换模式


十一、撤销编辑

  • u:undo,撤销前一次的编辑操作,可以连续使用u,撤销前n次的编辑操作

  • 注意:vi或vim只在内存缓冲区中保存最近50次的编辑操作,也就是说我们最多只能撤销最近50次的编辑操作

  • #u:直接撤销最近#次的编辑操作。

撤销撤销:撤销/还原上一次的撤销操作:Ctrl+r


十二、重复前一次的编辑操作

  • .:点,功能强大的点


十三、可视化模式

  • v:按字符选取,选取后可以执行上面所有的编辑操作(d删除,y复制等)

  • V:按矩形块选取,按行选取


十四、查找

  • /PATTERN:从文件首部到尾部查找

  • ?PATTERN:从当前光标所在行,到文件首部,倒着查找

    • n:下一个,往下跳转下一个

    • N:上一个,往上跳转下一个


十五、查找并替换

在末行模式下使用s命令,用法与sed一模一样。

  • 语法:ADDR1,ADDR2s@PATTERN@STRING@gi

    • @:分隔符

    • s:查找

    • g:替换

    • i:忽略字符大小写

例如:将文档中从当前行(.)开始到文档底部的所有小写的he替换为大写的HE

    :.,$-1s/he/HE/g

全文替换:

    :1,$ 或者 :%

1,$,表示从第一行到最后一行,百分号也是指全文。

练习题:

将/etc/yum.repos.d/server.repo文件中的ftp://instructor.example.com/pub替换为http://172.16.0.1/yum

key

%s/ftp:\/\/instructor\.example\.com\/pub/http:\/\/172.16.0.1\/yum/gi

%s@ftp://instructor\.example\.com\/pub@http://172.16.0.1/yum@gi

十六、如何打开多个文件

vim FILE1 FILE2 FILE3

:next:切换至下一个文件

:prev:切换至前一个文件

:last:切换至最后一个文件

:first:切换至第一个文件

vim rc.local init

默认显示第一个文件;

切换到下个文件:next

切换到上个文件:prev(注意:切换到上个文件之前,必须保存编辑过的这个文件,否则切换不过去的)

退出:全部退出

:qa

:qall

十七、分屏显示一个文件

看着前面的内容来编辑后面的内容

Ctrl+w,s :水平拆分窗口

Ctrl+w,v :垂直拆分窗口

切换窗口:Ctrl+w,ARROW(上下左右方向箭头)

退出:

:q 退出一个窗口

:qa 全部退出,关闭所有窗口

--------------------------------------------------------

水平拆分窗口:

Ctrl+w,松开后,再按 s

Ctrl+w+向下/上的箭头,切换光标到上/下面的窗口编辑。

垂直拆分窗口:

Ctrl+w,松开后,再按 v

十八、分窗口显示多个文件

窗口1显示文件1,窗口2显示文件2

水平分割显示,如:vim -o FILE1 FILE2

垂直分割显示,如:vim -O FILE1 FILE2

十九、将当期文件的部分内容另存为另外一个文件

末行模式下使用w命令

:w

:w  /path/to/somewhere

:ADDR1,ADDR2w  /path/to/somewhere

二十、将另外一个文件内容填充在当前文件中(合并两个文件)

:r /path/to/somefile

二十一、跟shell交互

末行模式下输入:

:! COMMAND

#COMMAND不支持alias别名命令

二十二、高级话题

1、显示或取消显示行号

:set number -- set nu

:set nonu

2、忽略或区分字符大小写

:set ic

:set ignorecase

:set noic

:set noignorecase

3、设定自动缩进(写脚本的时候很有用)

:set autoindent

:set ai

:set noai

4、设定高亮显示(查找到的文本高亮显示)

:set hlsearch

:set nohlsearch

5、语法高亮

:syntax on

:syntax off

二十三、vim配置文件

全局:vim /etc/vimrc

局部(用户级):vim ~/.vimrc


关于vim的练习题:

系统自带的vimtutor,每天做一遍,每次控制在半小时内搞定,就成了。


本文出自 “冷水泡茶” 博客,请务必保留此出处http://miaocbin.blog.51cto.com/689091/1665883

VIM编辑器的使用方法详解

标签:vim

原文地址:http://miaocbin.blog.51cto.com/689091/1665883

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!