Vim编辑器基础

vi:Visual Interface
vim:VI iMproved

先说目标和背景

前些天配备服务器的时候,使用Linux编辑配置文件的时候,发现Vim编辑器各样不懂行。平日发现“卧槽,这些怎么没了?”“这一个怎么编辑不了?”“这一个怎么退出?”,突然觉得对于一个时不时利用的操作系统,连个编辑器都使用不在行。那还怎么变成大师呢。于是专门回头学习了弹指间Linux中的Vim的应用。大家都领会,Vim是强硬的编辑器,从效果来讲Vim不输任何的编辑器。Vim作为Linux中的编辑器,并不等同Windows中的NotePad。相比较于Vim来说,Windows的记事本就是个渣渣。此前学习Linux的时候也学习过Vim的选拔。但是不系统也不成连串。我认识到这样不恐怕完全了然Linux。更别说了然了。所以创立了这么的一个文集来越发学习一下Linux的各市点知识。不止是Vim,在之后的码路上遇见其余关于Linux中的不熟谙大概不领会的地点。都要系统性的想起一下。所谓“温故而知新”。

Vim是从 vi 发展出来的一个文书编辑器。

vi简介

Vim文本编辑器,Vim编辑器基础。Vim模式

1、编辑模式(命令模式)
    只能下达命令,不能键入字符
2、输入模式
    键入字符
3、末行模式
    左下角有冒号,可以键入命令执行

Vi

VI:Visual Interface

Vim有二种情势:编辑方式–输入形式–末行情势

vi:Visual
Interface,是一种功用强大的公文编辑器,工作在字符方式下,它可举办输出、输出、查找、替换、块等众多文书操作,不须求图形界面,因而实施起来功用会要命高,主要用于编排纯文本文件,常见的编码有,ASCII,Unicode等等。 

Vim格局转换

vim 文件名

编辑-->输入:
    i:在当前光标所在字符的前面,转为输入模式;
    a:在当前光标所在字符的后面,转为输入模式;
    o:在当前光标所在行的下方,新建一行,并转为输入模式;

    I:在当前光标所在行的行首,转换为输入模式;
    A:在当前光标所在行的行尾,转换为输入模式
    O:在当前光标所在行的上方,新建一行,并转为输入模式;

输入-->编辑:
    ESC

编辑-->末行:
    :

末行-->编辑:
    ESC,ESC

模式

Vim的情势分为:

  • 编制方式(命令方式)
    在刚起首进入Vim是居于的格局就是编写形式,在编制格局中输入的其他字符都会作为命令
  • 输入情势
    在输入格局中,所有输入的字符都作为内容
  • 末行方式
    在编制方式中通过 :可以进去末行格局,末行格局可以举办一些特定的效益

形式转换:输入情势<<==>>编辑形式<<==>>末行形式

文件编辑器的类型:

开拓文件

# vim /path/to/somefile  

    vim +# :打开文件,并定位于第#行
    vim + :打开文件,定位至最后一行
    vim +/PATTREN :打开文件,定位至第一次被PATTREN匹配到的行的行首

默认处于编辑模式

情势的变换

编写形式—>输入方式

  • i: 在眼下光标所在字符的前头,转为输入形式
  • a: 在当下光标所在字符的末端,转为输入形式
  • o:在此时此刻光标所在行的江湖,新建一行,并转为输入方式
  • I 在日前光标所在行的行首,转换为输入方式
  • A 在脚下光标所在行的行尾,转换为输入格局
  • O 在现阶段光标所在行的上边,新建一行,并转为输入情势

输入方式—>编辑情势

  • ESC 键转为编辑格局

编辑方式—> 末行方式


  • 末行格局—>编辑格局
  • ESC

编排格局–> 输入情势:

    行编辑器:逐行来对文件举行拍卖的工具,如sed

关闭文件

1、末行模式关闭文件
    :q 退出
    :wq 保存并退出
    :q! 不保存并退出
    :w 保存 
    :w! 强行保存
    :wq --> :s 
2、编辑模式下退出
    ZZ: 保存并退出

开拓文件

  • vim+#:打开文件,并稳定于第#行

vim +5 /etc/hosts  打开hosts文件并编辑第5行
  • vim + 打开文件,定位至最终一行

vim + profile 打开文件并编辑最后一行
  • vim + /PATTERN:打开文件,定位至第两回被PATTERN匹配到的行的行首

vim +/PATH profile 打开文件并定位到关键词PATH第一次出现的行的行首

n:定位下一个根本字地点
N:定位上一个非同儿戏字的义务

i:
insert, 达成在当前光标所在处字符前边转换为输入方式;

    全屏编辑器:占据整个屏幕举行编辑,如nano,vi

活动光标(编辑情势)

1、逐字符移动:
    h:左
    l:右
    j:下
    k:上
    #h:移动#个字符;

2、以单词为单位移动
    w:移至下一个单词的词首
    e:跳至当前或下一个单词的词尾
    b:跳至当前或前一个单词的词首

    #w: 

3、行内跳转:
    0:绝对行首
    ^: 行首的第一个非空白字符
    $:绝对行尾

4、行间跳转
    #G:跳转至第#行:
    G:最后一行

    末行模式下,直接给出行号即可

关门文件

a:
append, 已毕在当前光标所在处字符前边转换为输入形式;

vim工作格局

翻屏

Ctrl+f:向下翻一屏
Ctrl+b:向上翻一屏

Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏

末行方式下关闭文件

  • :q 退出
  • :wq 保存并脱离
  • :q! 不保留并脱离
  • :w 保存
  • :w! 强行保存
  • :wq –>:x

o:
已毕在当前光标所在行的花花世界新建一个空白行并更换为输入方式;

   
输入形式:在文书文件当中输入内容

删除单个字符

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

编纂方式下退出

  • ZZ:保存并脱离

I:
在脚下光标所在行的行首转为输入格局;

   
命令形式:可实施一些编纂命令

删去命令:d

d命令跟跳转命令组合使用:
    #dw,#de,#db

dd;删除当前光标所在行
#dd:删除包括当前光标所在行在内的#行;

末行模式下:
StartADD,EndADDd
    .: 表示当前行
    $:最后一行
    +#:向下的#行 

举手投足光标

A:
在当下光标所在行的行尾转为输入形式;

   
末行方式:vim内置的通令行接口,执行vim的内置命令

粘贴命令 p

p:如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;
P:如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;

编制形式

O:
在当下光标所在行的上方新建一行,并转为输入形式;

vim的使用

复制命令 y

用法同d命令
逐字符移动
  • h:左
  • l: 右
  • j: 下
  • k: 上
  • #h 移动#个字符

输入方式–> 编辑格局:

打开文件

修改:先删除内容,在转移为输入方式

c:用法同d命令
以单词为单位活动
  • w:移动到下一个单词的词首
  • e:挑至当下或下一个单词的词尾
  • b:跳至当下或前一个单词的词首

按下Esc键;

    vim [OPTIONS] FILE…

替换:r

R:替换模式
行内跳转
  • 0:相对行首
  • ^:行首的首个非空白字符
  • $:相对行尾

编辑模式–> 末行形式:

    +#:打开文件光标处在第#行

注销编辑操作 u

u:撤销前一次的编辑操作
    连续u命令可撤销此前的n此操作
#u:直接撤销最近#次编辑操作

撤销最近一次撤销操作:Ctrl+r
行间跳转
  • #G:跳转至第#行
  • G最后一行
    在末行情势下,直接给出游号即可

键入:

    +:打开文件光标处在最终一行

双重前一回编辑操作

.

翻屏

  • ctrl+f 向下翻屏
  • ctrl+b 向上翻屏
  • ctrl+d 向下翻半屏
  • ctrl+u 向上翻半屏

末行情势–> 编辑格局:

    +/pattern:打开文件光标处在第三回被pattern所匹配到的行

可视化操作

v:按字符选取 
V:按行选取
Ctrl+v:按矩形选取

剔除单个字符

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

Esc,
Esc

    -b:二进制格局打开文件

查找

/PATTERN
?PATTERN
    n 
    N

除去命令

  • d命令跟跳转命令组合使用
    • dd 删除当前光标所在行
    • #dd:删除包蕴近日光标所在行内的#行
  • 末行方式下
    StartADD,EndADDdr
    .:表示近日行
    $:最终一行
    +#:向下的#行
    -#:向上的#行

.,.+3d 删除当前光标所在行到之后的3行,包括光标所在行
.,$-1d 删除除去最后一行的所有内容

光标跳转:

    -d:相比较七个文件的不一致之处

搜索并替换

在末行模式下使用s命令
ADDR1,ADDR2s@PATTREN@string@gi
1、$
%: 表示全文

复制命令 y

用法和d相同

  • 编纂形式

3y 复制光标所在的行后的3行

字符间跳转:

    -m:制度措施打开文件

使用vim编辑两个文件

vim FILE1 FILE2 FILE3
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换至第一个文件

退出
:qa 全部退出

粘贴命令 p

p:若是去除或复制为整行内容,则粘贴至光标所在行的花花世界,即使复制或删除的始末为非整行,则粘贴至光标所在字符的背后
P:要是剔除或复制为整行内容,则粘贴至光标所在行的顶端,要是复制或删除的始末为非整行,则粘贴至光标所在字符的先头

h:

方式转换

分屏突显一个文件

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

在窗口间切换光标:
Ctrl+w,ARROW

:qa

招来命令

  • 末行情势下
    /PATTERN 向下寻找
    ?PATTERN 向上查找
    * n 前一个
    * N后一个

l:

    默许为命令方式

分窗口八个公文

vim -o:水平分割显示
vim -O:垂直分割显示

替换 r

R:进入替换形式

j:

    一声令下情势 –> 输入情势

将近期文件中有的内容另存为其余一个文件

末行模式下使用w命令
:w
:ADDR1,ADDR2w /path/to/somewhere

摸索并替换

  • 末行方式
    在末行格局下选拔S命令uu
  • 语法规则
    ADDR1,ADDR2s@PATTERN@string@gi
    从第几行到第几行@s表明式@要替换的字符@g(全部轮换)i(忽略大小写)
  • % 代表全文
  • ^ 第一行
  • $ 最终一行

* 将文本中的所有after替换为before
:1,$s@after@before@g  第一行开始到最后一行替换@after@before@全部替换

k:

        -i:在此时此刻光标处输入

将别的一个文件的内容填充在眼下文件中

:r /path/to/somefile

收回命令 u

  • u:取消前三回的编纂操作
    * 一连u命令可收回在此此前的n次编辑操作
    * #u 间接收回目前#次编辑操作
    撤废近期一遍吊销操作 ctrl+r

#h:
向左侧跳#个字符;

        -a:在近年来光标后方输入

跟shell交互

:! COMMAND

编纂八个文件

语法格式:vim FILE1 FILE2 FILE3

  • :next 切换至下一个文件
  • :prev 切换至前一个文本
  • :last 切换至最后一个文书
  • :first 切换至第二个文件
  • 退出
  • :qa 全体脱离

单词间跳转:

        -o:在日前光标下方新建一行转为输入

尖端话题

1、显示或取消显示行号
:set number
:set nu

:set nonu

2、显示忽略或区分字符大小写
:set ignorecase
:set ic

:set noignorecase
:set noic

3、设定自动缩进
:set autoindent
:set ai
:set noai

4、查找到的文本高亮显示或取消
:set hlsearch
:set nohlsearch

5、语法高亮
:syntax on
:syntax off

分屏显示一个文件

  • Ctrl+w,s:水平拆分窗口
  • Ctrl+w,v:垂直拆分窗口
  • Ctrl+w,ARROW 在窗口之间切换光标
    : qa 关闭所有窗口

w:
后一个单词的词首

        -I:在近来光标所在行的行首输入

配备文件

/etc/vimrc
~/.vimrc

分窗口编辑三个文件

  • vim -o:水平划分突显
  • vim -O:垂直细分突显

e:
跳至当下或下一个单词启尾;

        -A:在当下光标所在行的行尾输入

将眼下文件中有些剧情另存为其余一个文书

  • 末行格局下
    :w
  • 语法格式
    :ADDR1,ADDR2w /path/to/somewhere

b:
跳至近日或前一个单词启首;

        -O:在时下光标上方新建一行转为输入

将此外一个文书的始末填充到当前文件中

:r /path/to/somefile

句子间跳转:

    锁定息争锁:

跟shell交互

在正在编纂文件的时候恐怕要求履行一些外部的通令,比如:正在编制文件时想要在外表目录创设一个文书
:!COMMAND

):
下一句;

        ctrl+s:锁定

展现行号

(:
前一句;

        ctrl+q:解锁

末行情势下

  • set number 显示行号
  • set nu 突显行号
  • set nonu 不出示行号
    而是来得行号仅限这次操作,若是要求在编排时默许显示行号,须要修改vi的配备文件

* vi 配置文件路径
vi /etc/virc 
将virc文件中添加
set nu 
保存退出
这样默认就会显示行号

段落间跳转:

    输入模式 –> 命令情势

疏忽或界别轻重缓急写

}:
下一段;

    编辑方式 –> 末行形式

末行情势

  • set ignorecase
  • setic
  • set noic 废除显示

{:
前一段;

        :

设定自动缩进

  • set autoindent
  • set ai
  • set noai 撤消机关缩进

行间跳转:

    末行形式 –> 编辑情势

查找到的文书高亮呈现或注销

  • :set hlsearch
  • :set nohlsearch

1G,
gg:

        Esc、Esc

语法高亮

  • :syntax on
  • :syntax off

G:

        注意:输入情势必要先转为命令格局然后再转为末行格局

配置文件

  • vi 配置文件
    /etc/virc
  • vim配置文件
    /etc/vimrc

#G:

关门保存文件:

Vim

在编排方面Vi和Vim是基本相同的,不过Vim对于打造和编程方面有着更好的拓展性和支撑,鉴于本身在Linux方面过于小白,先熟知了编制成效再来学习Vim的强大

行内跳转:

    命令形式

^:
行首的率先个非空白字符

        ZZ:保存并退出

$:
相对行尾

        ZQ:不保留退出

0:
相对行首

    末行方式:

闭馆文件:

        w:保存文本不脱离

在末行格局下:

        q:不保留退出

:w 保存

        wq:保存并退出

:q 退出

        wq!:强制保存并退出

:! 强制

        x:保存并脱离

:wq

        w /PATH/TO/SOMEFILE:将文件内容保留至指定文件中

:
q!

        r /PATH/TO/SOMEFILE:将点名文件的情节读取至近日文件中

:
x

        ! COMMAND:可临时执行shell命令

在编制格局下:

        r! COMMAND:将下令的施行结果添加至当下光标下方

ZZ:保存退出;

光标跳转:

qall

    字符间跳转:

开辟文件:

        h:左

vim
[options] /path/to/file

        j:下

再者开辟三个公文

        k:上

vim
+# /path/to/file

        l:右

next
下一个;

        #COMMAND:跳转#个字符

last
最终一个;

    单词间跳转:

first
第一个;

        w:跳转至下个单词的词首

prev
前一个

        e:跳转至下个单词的词尾

-O:
打开时垂直细分窗口

        b:跳转至上个单词的词首

-o:打开时水平划分窗口

        #COMMAND:跳转#个单词

编纂命令:

    行尾行首跳转:

x:
删除单个字符

        ^:非空白字符行首

#x:

        0:相对行首

d:
删除命令

        $:跳转至行尾

对应跳转的号子而除去
dw:

    当前页面跳转

db:

        H:页首

de:

        M:页中

d^

        L:页尾

d$

    行间跳转:

dw:删除单词
dd:删除一行
#dd删除光标所在行并向下#行

        #G:跳转至第#行

编写操作可裁撤:

        G:跳转至尾行

u:
vim默许会近年来50次的操作,u命令可依次撤除在此之前的编纂操作;

        gg:跳转至首行

注销从前的撤除:Ctrl+r:

    句间跳转:以.为分隔

粘贴操作:p

        ):跳转下一句

paste,
put

        (:跳转上一句

p

    段落跳转:以空行为分隔符

除去的是整行:

        }:跳转至下一段落

p:
在当前光标所在行的花花世界粘贴;

        {:上一段落 

P:在此时此刻光标所在行的上边粘贴

翻屏操作:

删去的不是整行:

    Ctrl+d:向文件底部翻半屏

p:
在时下光标所在处字符的后方粘贴;

    Ctrl+f:向文件底部翻一屏

P:在日前光标所在处字符的前方粘贴;

    Ctrl+u:向文件首部翻半屏

复制:y, yank

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

yy

    Enter:逐行向后翻

#yy

指令情势操作:

y$

    字符编辑:

y^

        x:删除光标处的字符

复制的是整行:

        #x:删除光标以右的#个字符

p:
在日前光标所在行的下方粘贴;

        xp:当前光标所在处的字符与光标后的字符做沟通

P:在此时此刻光标所在行的上边粘贴

        ~:转换大小写

复制的不是整行:

    轮换命令:

p:
在时下光标所在处字符的后方粘贴;

        r:替换光标所在处的字符

P:在目前光标所在处字符的前线粘贴;

        R:开启替换情势

一样文档窗口分割:

    删去命令:

Ctrl+w,s:
水平划分

        d:删除,可整合光标跳转字符,完成范围删除

Ctrl+w,v:
垂直细分

        d^:删除当前光标所在行以左的享有字符

Ctrl+w,
箭头

        d$:删除当前光标所在行以右的具备字符

窗口属性定义:

        dw:删除当前光标所在处下一个单词

突显行号:

        de:删除当前光标所在处的下一个单词

set
number, set nu

        db:删除当前光标所在处的上个单词

set
nonumber, set nonu

        dd:删除光标所在处的一整行

机动缩进

        #dd:删除光标所在行开头向下#行

set
autoindent, set ai

        D:等于d$

set
noai

    复制命令:

不区分字符大小写

        y:复制,可组合光标跳转字符

set
ignorecase, set ic

        y$:复制光标所在行以右的富有字符

set
noic

        y^:复制光标所在行以左的持有字符

赢得帮忙:

        yw:复制光标所在处下个单词

set

        ye:复制光标所在处下个单词

浮现匹配的括号:

        yb:复制光标所在处上个单词

set
showmatch, set sm

        y0:复制光标所在行以左的持有字符,包括空白字符

set
nosm

        yy:复制当前光标所在行

语法着色:

        #yy:复制光标所在行向下#行

syntax
on

        Y:复制光标所在行

syntax
off

    粘贴命令:

搜索高亮显示

       
p:缓冲区中的内容如果为整行,则粘贴在脚下光标所在行的下方;否则,粘贴至当前光标所在处的后方

set
hlsearch

       
P:缓冲区中的内容假设为整行,则粘贴在目前光标所在行的顶端;否则,粘贴至当前光标所在处的前敌

set
nohlserach

    更改命令:

vim的安顿文件:

        c:编辑情势 –> 输入指令,完结删除操作

全局:/etc/vimrc

        c$:删除光标所在处以右的兼具字符并转为输入形式

个人:~/.vimrc

        c^:删除光标所在处以左的所有字符并转为输入方式

查找替换:

        c0:删除光标所在处以左的持有字符并转为输入形式,包蕴空白字符

:地址定界s/查找方式/替换成的情节/gi

        cw:删除光标所在处下一个单词并转为输入方式

:地址定界[email protected]探寻情势@替换成的始末@gi

        ce:删除光标所在处下一个单词并转为输入形式

Gi:Globalignorecase
前边可以不写gi

        cb:删除光标所在处上一个单词并转为输入形式

末行方式下的操作操练

        cc:删除光标所在行并转为输入方式

为满意1-3题做题需求,在当前目录下新建一概括的文档,a.vim,内容如下

        #cc:删除当前光标所在行向下#行并转为输入方式

#
abc

        C:删除当前光标至行尾并转为输入格局

#
abc

    两回性复制粘贴多次内容:

abc
#

澳门金沙国际,        100i zhai Esc:zhai可粘贴100次

abc345abc

可视化格局:

率先应用命令vim进入编辑格局

    v:按字符选定

#
vim a.vim 输入:号就可进入末行情势

    V:按行选定

上边只交给vim末行方式下的代码

    可整合编辑命令:d,c,p,y

1,删除行首初阶的#:

    Ctrl+v:面向块

%[email protected]^#@@gi

裁撤操作:

%[email protected]^#@@g

    u:裁撤前四回操作

%[email protected]^#@@

    #u:撤销前#次操作

2,删除行首伊始的#及背后紧跟的空白字符;

    U:撤消光标所在行所有此行的变更操作

%[email protected]^#[[:space:]]\{1,\}@@

    .:重复前一回操作

3,为空白字符早先的行的行首加上#;

    n.:重复前n次操作

%[email protected]^[[:space:]]@#&@

末行格局:

4,删除/etc/grub.conf文件中行首的空白符;

    地址定界

%[email protected]^[[:space:]]*@@

        :start_line,end_line

5,替换/etc/inittab文件中”id:3:initdefault:”一行中的数字为5;

        #:指定的单个行

%[email protected]:3:[email protected]:5:[email protected]

        #,#:从左边的#行初叶,到右手之间的享有行

/id:3:initdefault
[email protected][0-9]@[email protected]
(先将光标锁定到这一行,然后再交替,要分行展开)

        #,+n:从左边的#行初步向后加n行

6,删除/etc/inittab文件中起初的#号;

        .:当前行

%[email protected]^#@@g

        $:最后一行

7,删除某文件中初露的#号及前边的空白字符,但须要#号前边总得有空白字符;

        $-1:表示倒数第二行

%[email protected]^#[[:space:]]\{1,\}@@g

        %:表示全文,相当于1,$

8,为指定范围内的行的行首添加#;

       
/pat1/,/pat2/:第一遍被pat1所匹配到的行到第五次被pat2所匹配到的行终止,之间的有所内容

1-13行行首添加#

       
#,/pat/:从指定的行开端到被第四次被pat匹配到的行终止,之间的所有情节

1,[email protected]^@#@g

       
/pat/,#:从第三次被pat匹配到的行开首到第#行终止,之间的持有剧情

9,显示行号,撤除行号

    末端可跟编辑命令:

:set nu

        d:删除

澳门金沙国际 1

        y:复制

:set nonu

        w /PATH/TO/FILE:将限量内���行保存至指定文件中

10,设置搜索结果高亮显示

        r /PATH/TO/FILE:将指定文件的内容插入指定的具备行处

:
set hlsearch

    查找:

万一之前有追寻过文本中的内容,则那些情节会高亮彰显出来

        /PATTERN:从近日光标所在处向文件底部查找

澳门金沙国际 2

        ?PATTERN:从当下光标所在处向文件首部查找

要让字符回复原来的颜料,撤消设置即可

        n:光标跳转至下一个被查找到的内容

:set nohlsearch

        N:与n相反

上文中列出的等等用法均可以根据第9,10题加以完结,不再多做牵线。

vim寄存器:

强大的Vim 编辑器

    有26个命名寄存器和1个无命名寄存器,存放至不同剪切板中

在CentOS 6.2上搭建Vim开发环境

    a,b,…,z用”寄存器表示,存放在数字和指令之间

Vim 7.4a 公布,全新更快的正则表明式引擎

    如:3″ayy表示复制3行达到a寄存器中

CentOS 5.4 安装高亮Vim编辑工具

    “ap:表示将a寄存器中的内容粘贴

Vim技巧分享:C语言设置

编制二进制文件:

Ubuntu中设置Vim的行号

    vim -b BINFILE

是从 vi 发展出来的一个文书编辑器。 Vim
有三种格局:编辑情势 — 输入方式 — 末行形式 情势转换:输入形式 ==
编辑情势 == 末行格局…

    扩充命令形式下,利用xxd命令转换为可读的十六进制

    :%!xxd

    编辑二进制文件

    扩充命令情势下,利用xxd命令转换回二进制

    :%!xxd –r

多文本情势:

    vim FILE1 FILE2 FILE3 …

    :next 下一个文本

    :prev 上一个文书

    :last 最后一个文本

    :first 第二个文本

    :wall 保存所有

    :qall 不保留退出所有

    :wqall 保存所有并脱离

行使多窗口:

    多文件分割

        vim -o|O FILE1 FILE2 FILE3 …

        -o:水平划分

        -O:垂直细分

        在窗口间切换:Ctrl+w,左右箭头

    单个文件:

        Ctrl+w,s:水平划分

        Ctrl+w,v:垂直细分

        Ctrl+w,q:撤消相邻窗口

        Ctrl+w,o:裁撤所有窗口

        :qall 退出所有

概念vim工作特色:

    布署文件:永久有效

        全局:/etc/vimrc

        用户:~/.vimrc

   

    增加格局:当前vim进度有效

        (1)行号

            展现行号:set number可简写为set nu

            裁撤行号:set nonumber可简写为set nonu

        (2)括号成对匹配

            匹配:set showmatch可简写为set sm

            打消匹配:set noshowmatch可简写为set nosm

        (3)自动缩进

            缩进:set ai

            取消:set noai

        (4)高亮搜索

            启用:set hlsearch

            禁用:set nohlsearch

        (5)语法高亮

            启用:syntax on

            禁用:syntax off

        (6)忽略字符大小写

            启用:set ic

            禁用:set noic

        (7)文件格式

            启用:fileformat=unix

            禁用:fileformat=dos

vim内置协助

    :help

    vimtutor

练习:

1.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符

47 HOSTNAME=` ```/bin/hostname` `2>/dev/null` `

``48 HISTSIZE=1000

``49 ``if [ ``"$HISTCONTROL" = ``"ignorespace" ] ; ``then

``50 ``export HISTCONTROL=ignoreboth

``51 ``else

``52 ``export HISTCONTROL=ignoredups

``53 ``fi

``54

``55 ``export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

``56

``57 ``# By default, we want umask to get set. This sets it for login shell

``58 ``# Current threshold for system reserved uid/gids is 200

``59 ``# You could check uidgid reservation validity in

``60 ``# /usr/share/doc/setup-*/uidgid file

``61 ``if [ $UID -gt 199 ] && [ ``` "id -gn" ``` "`id -un`" ]; ``then

``62 ``umask 002

``63 ``else           

``64 ``umask 022

``65 ``fi 

``66

``67 ``for i ``in /etc/profile``.d/*.sh ; ``do

``68 ``if [ -r ``"$i" ]; ``then

``69 ``if [ ``"${-#*i}" != ``"$-" ]; ``then

``70 . ``"$i" 

``71 ``else   

``72 . ``"$i" >``/dev/null 2>&1

``73 ``fi     

``74 ``fi 

``75 ``done

``76

``77 ``unset i

``78 ``unset -f pathmunge

:%s@^[[:space:]]\+@@

2.复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行初步为空白字符的行的行首添加一个#号

949 ``#       [ -z "$key" ] && plymouth --hide-splash

950 ``#       /sbin/cryptsetup $params ${key:+-d $key} create "$dst" "$src" <&1 2>/dev/null && success || failure

951 ``#       rc=$?

952 ``#       [ -z "$key" ] && plymouth --show-splash

953 ``#   fi

954 ``#   if [ $rc -ne 0 ]; then

955 ``#       ret=1

956 ``#       continue

957 ``#   fi

958 ``#   if [ -b "/dev/mapper/$dst" ]; then

959 ``#       if [ "$makeswap" = "yes" ]; then

960 ``#       mkswap "/dev/mapper/$dst" 2>/dev/null >/dev/null

961 ``#       fi

962 ``#       if [ "$mke2fs" = "yes" ]; then

963 ``#       if mke2fs "/dev/mapper/$dst" 2>/dev/null >/dev/null \

964 ``#           && mdir=$(mktemp -d /tmp/mountXXXXXX); then

965 ``#           mount "/dev/mapper/$dst" "$mdir" && chmod 1777 "$mdir"

966 ``#           umount "$mdir"

967 ``#           rmdir "$mdir"

968 ``#       fi

969 ``#       fi

970 ``#   fi

971 ``#    done < /etc/crypttab

972 ``#    return $ret

973 }

974

975 ``# A sed expression to filter out the files that is_ignored_file recognizes

976 __sed_discard_ignored_files=``'/\(~\|\.bak\|\.orig\|\.rpmnew\|\.rpmorig\|\.rpmsave\)$/d'

977

978 ``#if we have privileges lets log to kmsg, otherwise to stderr

979 ``if strstr ``"$(cat /proc/cmdline)" "rc.debug"``; ``then

980 ``#        [ -w /dev/kmsg ] && exec 30>/dev/kmsg && BASH_XTRACEFD=30

981 ``#        set -x

982 ``fi

:%s@^[[:space:]]\+@``#&@ 

3.什么设置tab缩进为4个字符?

在末行模式输入 ``set ts=4即可

4.复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysconfig/init为/var/log

澳门金沙国际 3

5.去除/tmp/functions文件中有所以#开头,且#末尾至少有一个空白字符的行的行首的#号

澳门金沙国际 4

Vim入门基础知识集锦 
http://www.linuxidc.com/Linux/2017-02/140903.htm

Vim入门基础教程
http://www.linuxidc.com/Linux/2017-02/140279.htm

把Vim营造成优质的C++ IDE 
http://www.linuxidc.com/Linux/2016-06/132262.htm

Ubuntu
14.04升级Vim7.4到8.0 
http://www.linuxidc.com/Linux/2016-11/136816.htm

Vim安装youcompleteme自动补全插件 
http://www.linuxidc.com/Linux/2016-11/137665.htm

Linux Vim编辑器使用不难讲解 
http://www.linuxidc.com/Linux/2016-12/138930.htm

Vim安装与配置进阶版
http://www.linuxidc.com/Linux/2017-03/141724.htm

Ubuntu 16.04 Vim YouCompleteMe自动补全的装置配备与运用 
http://www.linuxidc.com/Linux/2017-02/141088.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142275.htm

澳门金沙国际 5

相关文章