Linux运维之vim编辑器



vi(visual interface);

vim(VI improved):全屏编辑器;模式化的编辑器;最好用的功能语法着色

可通过#vimtutor获取帮助

vim模式:编辑模式(命令模式);输入模式;末行模式

模式转换:

编辑模式-》输入模式:

i(在当前光标所在字符的前面,转为输入模式)

a(在当前光标所在字符的后面,转为输入模式)

o(在当前光标所在行的下方新建一行转为输入模式)

I(在当前光标所在行的行首,转为输入模式)

A(在当前光标所在行的行尾,转为输入模式)

O(在当前光标所在行的上方新建一行,转为输入模式)

输入模式-》编辑模式:<ESC>

编辑模式-》末行模式(仅能在编辑模式下转换到末行模式):冒号<:>

末行模式-》编辑模式:<ESC>一次或两次按键

 

一、打开文件

#vim +  FILE(打开文件,定位在最后一行)

#vim +#  FILE(打开文件,定位在#行)

#vim +/pattern  FILE(打开文件,定位在第一次被PATTERN匹配到的行首)

二、关闭文件

在末行模式下::q,:q!,:w,:w!,:wq(:x)

在编辑模式下:ZZ

三、移动光标(编辑模式下):

逐字符移动:[#]h|L|K|J(分别为左右上下)

逐单词移动:[#]w|e|b(分别为移至下一个单词的词首,跳至当前或下一个单词的词尾,跳至当前或前一个单词的词首)

行内跳转:0|^|$(分别为绝对行首,行首的第一个非空白字符,绝对行尾)

行间跳转:G#G(分别为最后一行,直接跳转至#行,在末行模式下输入:#也可跳至#行)

四、翻屏:

ctrl+f(向下翻一屏)

ctrl+b(向上翻一屏)

ctrl+d(向下翻半屏)

crrl+u(向上翻半屏)

五、删除单个字符:[#]xx删除光标所在处单个字符,#x删除光标所在处及后的#个字符)

六、删除命令:

[#]d跳转符(d与跳转符结合使用,如dw,de,db,dG,d0,d^,d$

dd(删除光标在行)

#dd(删除光标所在行及下的#行)

在末行模式下删除:

:startNUM,endNUMd(如::5,10d删除510行)

.(表示当前行)

$(表示最后一行)

+#(向下的#行)

$-1(倒数第二行)

注:删除的内容放至缓冲区(内存中),之前的操作可撤销最多50次,最后一次的内容可粘贴。

七、粘贴命令:

小写p(删除或复制的为整行内容,则粘贴至光标所在行的下方;若删除或复制的非整行,则粘贴至光标所在字符的后面)

大写P(删除或复制的为整行内容,则粘贴至光标所在行的上方;若删除或币制的非整行,则粘贴至光标所在字符的前面)

八、复制命令:

y(用法同d命令,如:yy,3yy,y$,y0,:2,10y

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

c(用法同d命令,如:cc,c$

十、替换:

r(替换单个字符)

R(替换模式)

十一、撤销编辑操作:

u(撤销前一次的编辑操作)

连续u(撤销此前的n次操作)

#u(撤销之前的#次操作)

ctrl+r(撤销最近一次的撤销操作)

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

十三、可视化模式:

小写v(结合移动光标,按字符选取)

大写V(结合移动光标,按矩形选取)

十四、查找:

/pattern(向下查找,回车后用n可继续向下查找匹配内容,用N则向上查找匹配内容)

?pattern(向上查找,回车后用n可继续向上查找匹配内容,用N则向下查找匹配内容)

十五、查找并替换:在末行模式下使用s(同sed命令的用法,s///,s@@@,s###等可自定义符号)

:ADD1,ADD2s@PATERN@STRING@gig全局替换,i忽略大小写,gi可同时使用,例如::.,$-1s/he/ha/gi

:%s/pattern/string/gi%表示全文)

十六、打开多个文件:

#vim FILE1  FILE2

:next(切至下一个文件)

:prev(切至上一个文件)

:first(切至首个文件)

:last(切至最后一个文件)

:qa(全部退出)

十七、分屏显示一个文件:

Ctrl+w,s(水平拆分窗口)

Ctrl+w,v(垂直拆分窗口)

Ctrl+w(在窗口间切换光标)

:qa(关闭所有窗口)

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

#vim -o  FILE1  FILE2(水平分割显示)

#vim -O  FILE1  FILE2(垂直分割显示)

十九、将当前文件的部分内容另存为另一文件:

:ADDR1,ADDR2w  /path/to/file

二十、将另一文件内容填充在当前文件中:

:r /path/to/file

二十一、与SHELL交互:

:! COMMAND

二十二、高级用法:

1、  显示或取消行号(行号不是文件的组成部分):

:set nu:set  number

:set nonu

2、  显示忽略字符大小写(不常用):

:set ic:set  ignorecase

:set noic:set  noignorecase

3、  设置自动缩进,把当前行的对齐格式应用到下一行(写脚本时常用):

:set ai:set  autoident

:set noai

:set smartindent(依据上面的对齐格式,智能的选择对齐方式)

4、  查找到的文本高亮显示:

:set hlshighlight search

:set nohls

5、  语法高亮:

:syntax on

:syntax off

6、  设置匹配模式(当输入一个右括号时会匹配相应的左括号):

:set showmatch

7、  设置查询时按输入内容依次找到匹配项,如查找book单词,当输入/b时,会自动找到第一个b开头的单词,当输入到/bo时会自动找到第一个/bo开头的单词,依次类推:

:set incserarchincremental search

8、  设置选定行加横线:

:set cursorline

二十三、配置文件:

/etc/vim(全局)

~/.vimrc

 

 

 

 

 

以上内容是学习《马哥网络视频》做的笔记。



 

 

vi编辑器(全屏幕纯文本编辑器)

1、命令模式、插入模式、末行模式

2、a                在光标所在字符后插入

                       在光标所在行行尾插入

         i                在光标所在字符前插入

                       在光标所在行行首插入

         o                在光标下插入新行

                       在光标上插入新行

         :w              保存

         :q               不保存退出

         :wq  保存退出

         :q!             强制退出

         :w 文件名              另存为

3、HJKL对应左下上右

 

         gg              文件头

                       文件尾

         ^                行首

         $                行尾

         :n               移至第几行

 

         x                 删除单个字符

         nx              删除n个字符

         dd              删除单行(或剪切)

         :n1,n2d              删除指定范围的行

         ndd            删除n

         p                粘贴至光标后

         P                粘贴到光标前

 

         yy nyy             复制

         u                          撤销

         ctrl+r                  反撤销

         r                          替换光标所在处字符

         R                         从光标处开始替换,<esc>结束

        

         :set nu               显示行号

         :set nonu          不显示行号

        

         :syntax on|off           颜色开关

 

         /内容                 查找字串(n向下查,N向上查)

         :1,10s/old/new/g              替换1到10行的oldnew

         :%s/old/new/g                   替换整个文件的oldnew

         :1,5s/^/#/g                注释1到5行(在行首加#

         :1,5s/^#//g                取消1到5行注释

         :1,5s/^/\/\//g                     文件头加入//

                   注:/g (范围内所有)

4、:r  文件名           导入其它文件内容

         :!命令                                            vim中执行系统命令

         :r !命令                                     导入命令结果

         :map 快捷键 快捷键执行的命令

         例::map ^p I#<esc>                         在行首加入#

注:^p不能手工输入,需执行ctrl+v+p来定义

例::map ^b ^x<esc>                        ctrl+b时取消#

5、:ab  源字符  替换为字符

         例::ab mymail  sc@163.com

         注:如需永久生效,需写入配置文件~/.vimrc

 


本文出自 “Linux运维重难点学习笔记” 博客,请务必保留此出处http://jowin.blog.51cto.com/10090021/1640455