精华内容
下载资源
问答
  • Linux vi 撤销与取消撤销 万次阅读 多人点赞
    2017-09-15 17:25:49

    用习惯了window编辑,改用linux 编辑,还有些不习惯,但是linux 下的vi 编辑用多了,可比window下编辑要快哦。

    在linux系统中,使用vi编辑,在命令行模式(按ESC)下 按 u 是撤销,相当于windows 下的ctrl+z,取消上一步操作是 ctrl+r 相当于window下的 ctrl+y,有了这两个快捷键操作起来就会方便很多。

    本文出自“筱Mary”博客,转载请务必保留此处
    http://blog.csdn.net/qq_31382921/article/details/77993860

    更多相关内容
  • 精通vi命令如何启动vi命令呢?当你在图形模式时,你得先打开终端,然后在shell提示符下输入vi,就可以了。当然你也可以指定一个文件名;如:$vi script.txt表示在当前目录下创建了一个空文本文件script.txt你也可以...

    精通vi命令

    如何启动vi命令呢?

    当你在图形模式时,你得先打开终端,然后在shell提示符下输入vi,就可以了。

    当然你也可以指定一个文件名;如:

    $vi script.txt

    表示在当前目录下创建了一个空文本文件script.txt

    你也可以提供一个或更多个文件。(如果所提供的文件名不存在,则创建)

    例如:

    $vi file.txt1 file.txt2

    现在让我们来了解如何退出vi,以及保存在vi中所做的修改和如何得到帮助信息。

    退出vi有如下的命令格式:

    :n    当你指定了多个文件时,使用这个命令来编辑下一个文件。

    :q    不保存文件退出.

    :q!    不保存文件,并强制退出.

    :wq file    保存文件并退出,这里的file代表相对路径的文件名,或者是绝对路径的文件名。

    :w file     保存文件,如果没有指定文件名,就是当前的文件名。

    :w!    强制保存文件(前提是你对这个文件具有写的权限)。

    :x    保存文件并退出,等价于ZZ命令。

    ZZ    保存文件并退出。

    zz    以当前鼠标位置为准,向前滚动半屏。

    :h    请求帮助

    让我们来看看几个最基本的例子

    假如你想新建一个文件名为script.txt,路径为当前目录。可以在shell模式下,输入如下:

    $vi script.txt

    现在你就进入了vi命令,现在你就可以用上面的退出命令退出了。

    上面的命令只告诉我们如何退出vi,和保存文件,我们还不知如何对文件进行编辑和修改。基本的命令如下:

    插入命令:

    想插入新的内容,得先导航到插入的位置,然后进入修改模式:

    i        在当前鼠样之前进入插入模式,并替换文本。

    I        在行的开始处进入插入模式

    a        在当前鼠标之后进入插入模式,添加或替换文本。

    A        在当前行的末尾进入插入模式。

    o        在当前行的下面插入一个新行

    O        在当前行的上面插入一个新行。

    J        将下一行与当前行合并成一行

    :e file       编辑指定的文件,并退出当前的文件。(file 表示路径加文件名)

    :e!          重新读取当前文件,并放弃所做的修改。

    :r filename    在当前行处插入一个新的文件

    编辑命令

    C        删除从当前光标到行尾,并进入插入模式。

    cc        删除整行,并进入插入模式。

    S         删除整行,并进入插入模式。

    s         删除当前光标处的字符,并进入插入模式

    cw         在当前光标处删除一个单词,并进入插入模式。

    R        进入插入模式(一种不同的插入模式),并覆盖已存在的字符。

    u        撤消上一次的操作

    删除命令

    从指定的位置删除一个文本块

    dl        删除当前光标处的字符

    ndl        删除当前光标处的n个字符(向前计算)

    如:3dl 将要删除3个字符

    dw        删除当前光标处的单词

    ndw        删除当前光标处的n个单词(向前计算)

    如:5dw 将要删除5个单词

    dG        删除从当前光标到文件的末尾

    dd or :d     删除当前行

    ndd        从当前行开始,向前删除n行,

    如:3dd 将要删除3行

    D        删除从当前光标到行末,等价于d$

    d)         除了拥有D和d$的功能外,还有下面描述的功能:

    把鼠标放在{,[ 或者(上,将要删除所有与之匹配的内容

    如:prints()

    { if [ -f $1 ]

    then

    ehco "the \$1 is a file"

    fi

    }

    当光标在{上时,按下d),就可删除{}之间的所有内容(假如你是在插入模式下,得先按             下‘esc’键,再将光标定位在{上,就可以了)

    x        删除当前光标处的字符,相当于dl命令

    X        删除当前光标左边处的字符

    :X        对文件加密(即给文件设置密码保护)

    nx        删除n个字符从当前光标处。

    例如:3x 将从当前光标处向前删除3个字符

    复制与粘贴

    复制命令,通常是从一个指定的位置,复制一个文本块,以下是具体的命令:

    yl        向前复制一个字符(这里的字母顺序不能颠倒)

    yw        向前复制一个单词(这里的字母顺序不能颠倒)

    y$        从当位置复制到行尾(这里的字母顺序不能颠倒)

    yG         从当位置复制到文件的尾部(这里的字母顺序不能颠倒)

    yy or :y    复制整行

    nyy        从当前行开始,向前复制n行。(这里的字母顺序不能颠倒)

    如:3yy 从当前行开始向前复制3行

    粘贴操作是插入先前剪切板中的内容

    p(小写)    在当前光标的后面粘贴剪切板中的内容

    P(大写)    在当前光标的前面粘贴剪切板中的内容

    np        粘贴n次,p可以是大写,也可以是小写

    如3p 在当前光标的后面连续粘贴3次相同的内容

    上面讲了vi的进入,退出及编辑命令,在vi中,是不能用鼠标的,因此,我们还得来学一些导航命令,以让我们可以将光标定位在我们感兴趣的位置上。

    Ctrl-b        向上滚动一屏

    Ctrl-f     向下滚动一屏

    0(zero)    移动当前行的开始

    $        移动当前行的末尾

    ^        移动到当前行第一个非空白字符处

    $        移动到当前行的末尾

    b,B        向后滚动一个单词,以空白作为分隔符

    G        移动到文件的尾部(相当于Shift-g)

    nG or :n      从当前文件的开始行向前移动n行,

    如:1 Shift-g 将光标定位在当前文件的第一行

    h        向左移动一个字符

    H        移动到屏幕的顶部

    j        向下移动一行

    k        向上移动一行

    l        向右移动一个字符

    L        移动到屏幕的底部

    M            移动到屏幕的中间

    w,W        向前移动一个单词,光标在单词的开始处;白作为分隔符。

    e,E             向前移动一个单词,光标在单词的末尾处;白作为分隔符。

    {         向后移动一段

    }         向前移动一段

    (         向后移动一句话

    )           向前移动一句话

    范围

    当用:s命令去查找并替换多行时,常需要指定其范围,如::3,7表示从第三行到第七行,以下是一些常用的范围格式:

    :n ,m        从第n行到第m行

    :.           当前行

    :$           最后的一行

    :?c          Marker c

    :%           所有的行

    .,$           从当前位置到结尾

    :g/pattern/ 所有匹配的行

    %    这是一个特殊用途的命令。将光标放在 [, {, (上,然后按下‘%‘,光标就会自动跳到匹配的字符],},)上,并高亮显示(一般用在调试程序中)。

    例如:

    删除第三到第七行的内容:

    :3,7d

    给文件的所有行加上注释

    :%s/^/#/

    将文件的所有行取消注释

    :%s/^#//

    查找

    这下面的命令是用来查找文本的:

    /pattern    向前查找字符串,也可用正则表达式

    pattern    向后查找字符串,也可用正则表达式

    n        重做上次的查找操作(从当前光标向下查找匹配的位置)

    N        重做上次的查找操作在相反的方向(从当前光标向上查找匹配的位置)

    例如:

    查找以字母a开头,后面为两个任意字符的单词

    /a.. or ?a..

    替换

    :s/pattern/string/flags     用 string替换pattern

    :s是完成查找和替换的标志

    常用的flags(可选)有g和c

    g         是一个全局参数,表示所有,或者是全部

    c         只做一次,在替换之前并给出提示

    &        重做上一次的查找替换操作(须用一些导航命令将光标定位在需要替换的字符处)

    例如:

    用script替换scrit,从第一行到文件的结尾:

    :1,$ s/scrit/script/g

    这参数g表示在指定范围内替换全部,如果没有给定参数g,则只替换一次。

    查找aple并将它替换为apple; 查找范围:当前光标到文件的末尾

    :.,$s/aple/apple/g   (在$与s之间,有无空格都是正确的)

    在文件中查找并替换有以下两种方法:

    :%s/from/to/g

    :g/from/s//to/g

    说明:from是被替换的字符,to是用来替换的字符

    正则表达式:

    . (点)       任意单个字符,除了新行

    *           匹配 0次或多次

    [...]         匹配括号里的任意一个字符

    [^ ...]       不匹配括号里的任意一个字符

    ^        开始标志

    $         结束标志

    \< , \>       前一个表示单词的开始,后一个表示单词的结束

    \(: : :\)      分组(放进内存)

    \n           n组的内容(从内存里调用)

    如:查找以字母a或A开头,第二个字符任意,三个字符为c的单词

    /[aA].c/

    文件

    !!program    程序运行的结果来替换当前行的内容

    :r!command   从shell命令里读取输出值。

    如::r!which perl

    其它命令

    Ctrl-]        打开超链接

    Ctrl-T        返回到打开超链接之前的文本

    :se nu         在各行的前面显示行数

    :se nonu       撤消显示行数

    .             重做上一次文本改变的命令。假如你刚做过粘贴操作,按下‘.’,将继续做粘贴操作

    u            撤消上一次的操作;假如你上次做了粘贴操作,这个命令将会撤消上次的粘贴操作

    U         撤消在一行中所做的所有更改。(这个命令的作用范围在一行)

    ctrl-l        刷新窗口

    以下是一个非常有趣的命令,有时你想把你输入的内容,原封不动的复制n遍,而你不想用上面的关于复制,粘贴的命令。以下的操作将会在你输入完内容后,自动重复n次你先前做的内容:

    假如你想把你即将要输入的内容,自动重复3遍:

    第一步:输入 ‘3i‘(’i’表示进入插入模式)

    第二步:输入你想输入的内容

    (假定为以下内容:

    #awk '$3<5 {printf "%s\t%s\n",$1,$2;} $3>6 {printf "the price greater than \$6 %s\t%s\n",$1,$2}' 2.txt

    #note: don't appent the $ after the regular expression)

    第三步:按下键,得到的结果如下:

    #awk '$3<5 {printf "%s\t%s\n",$1,$2;} $3>6 {printf "the price greater than \$6 %s\t%s\n",$1,$2}' 2.txt

    #note: don't appent the $ after the regular expression)#awk '$3<5 {printf

    "%s\t%s\n",$1,$2;} $3>6 {printf "the price greater than \$6 %s\t%s\n",$1,$2}' 2.txt

    #note: don't appent the $ after the regular expression)#awk '$3<5 {printf

    "%s\t%s\n",$1,$2;} $3>6 {printf "the price greater than \$6 %s\t%s\n",$1,$2}' 2.txt

    #note: don't appent the $ after the regular expression)

    当然,你也可以将i 改为o或a

    做完了上面的命令,是不是感到对vi命令已经有了一个清楚的认识了;也许你会想,既然不能用鼠标,那能不能像鼠标一样,通过按下鼠标左键,就可选定想选定的内容呢,答案是肯定的。现在让我们来看看如何做到:

    假如你想选定一行中的某一部分,并将它复制,然后粘贴到你想粘贴的位置:

    第一步:将光标定位在你想选定的那个位置(通过前面讲的导航命令)

    第二步:按下组合键

    第三步:按方向键,调整并选取所需内容,选中的内容将会以另一种颜色出现,确定选中的内容后,按下'y',就完成了复制操作。

    第四步:将光标定位在你想粘贴的位置,按下p键即可

    提示:当你进入插入模式后,你又想对某一句话,或单词进行复制,你必须先按下键,才能进入复制操作的命令;总之:你在插入模式下,想用其它的命令,你都得先按下键。

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

    一、简介

    Vi命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,很多人不喜欢VI因为它 的众多的命令集,但是我们只需要掌握基本的命令然后灵活地加以运用,相信我们也

    一样会喜欢它的。 本文旨在更有条理有归纳性地介绍VI的一些最常用命令和一些高级的应用。

    二、基本命令介绍

    1) 光标命令

    k,j,h,l——上下左右光标移动命令,虽然你可以在Linux中使用键盘右边的四个光标键, 但是记住这四个命令还有非常有用的,也就是右手在键盘上放置的位置部分。

    nG ——n为行数,该命令立即使光标跳到指定行。

    Ctrl+G——光标所在位置的行数和列数报告。

    w,b——使光标向前或向后跳过一个单词。

    2) 编辑命令

    i,a,r——在光标的前,后,上方插入字符命令(i=insert,a=append,r=replace)。

    cw,dw——改变(置换)/删除光标所在处的单词的命令 (c=change,d=delete)。

    x,d$,dd——删除一个字符,光标所在处到行尾的所有字符,和整行的命令。

    3) 查找命令

    /string, ?string——从光标所在处向后/向前查找相应的字符串的命令。

    4)拷贝复制命令

    yy,p ——拷贝一行到剪贴板/取出剪贴板中内容的命令。

    三、常见问题及应用技巧

    1) 在一个新文件中读/etc/passwd中的内容,取出用户名部分

    vi file

    :r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd。

    :%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分。

    :3r /etc/passwd 这是在指定的行号后面读入文件内容。

    另外一种方法删掉文件中所有的空行及以#开始的注释行

    #cat squid.conf.default | grep -v '^$' | grep -v '^#'

    2) 在打开一个文件编辑后才知道登录的用户对该文件没有写权,不能存盘。

    vi file

    :w /tmp/1 既然没法存盘,不想放弃所做的所有修改,先临时存到/tmp/1。

    :20,59w /tmp/1 或者仅仅把第20到59行之间的内容存盘成文件/tmp/1。

    3) 用VI编辑一个文件,但需要删除大段大段的内容。

    vi file

    Ctrl+G 把光标移到需要删除的行的处按ctrl+G显示行号,再到结尾处再按Ctrl+G.

    :23,1045d 假定两次行号为23和1045,则把这几间的内容全删除。 也可以在开始和结束两行中用ma,mb命令标记后用:'a,'bd删除.

    4) 在整个文件或某几行中在行首或行尾加一些字符串

    vi file

    :3,$s/^/some string /

    在文件的第一行至最后一行的行首前插入some string.

    :%s/$/ some string/g 在整个文件每一行的行尾添加 some string.

    :%s/string1/string2/g 在整个文件中替换string1成string2.

    :3,7s/string1/string2/ 仅替换文件中的第三到七行中的string1成string2.

    Note: s为substitute,%表示所有行,g表示global.

    5) 同时编辑两个文件,在两个文件中拷贝剪贴文本

    vi file1 file2

    yy 同时打开两个文件,在文件1的光标所在处拷贝所在行。

    :n 切换到文件2 (n=next)。

    p 在文件2的光标所在处粘贴所拷贝的行。

    :N 切换回文件1。

    6) 替换文件中的路径

    :%s#/usr/bin#/bin#g 把文件中所有路径/usr/bin换成/bin。

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

    vi编辑器使用方法|vi热键|vi快捷键

    vi是在工作站上广泛使用的编辑软件。对初学者而言,

    常因其特殊的使用方法,而不得其门而入;对已经在使用 vi 的使用者来说,也

    常见因对 vi 的不熟悉或不够了解,而无法发挥出 vi 强大的编辑能力,以下将

    简单介绍 vi 的使用方法。不必死记硬背,多实际操作几次就能记住常用的命令。

    进入vi

    直接执行 vi编辑程序即可:

    %vi test

    此刻屏幕上会出现 vi 的编辑屏幕,同时 vi 会将文件复制一份至内存中的缓冲区 (buffer) 。 vi会保留在硬盘中的文件不变,而先对缓冲区的文件作编辑,编辑完成后,使用者可决定是否要取代原来旧有的文件。

    离开vi

    若在输入模式下,则先利用《ESC》进入指令模式,而后即可选用下列指令

    离开vi。

    :q! 离开vi,并放弃刚在缓冲区内编辑的内容。

    :wq 将缓冲区内的资料写入硬盘中,并离开vi。

    :ZZ 同wq。

    :x 同wq。

    :w 将缓冲区内的资料写入硬盘中,但并不离开vi。

    :q 离开vi,若文件被修改过,则会被要求确认是否放弃修改的内容。

    此指令可与:w 配合使用。

    vi 的操作模式

    vi 提供两种操作模式:输入模式(insert mode)和指令模式(command mode)

    。当使用者进入 vi 后,即处在指令模式下,此刻键入的任何字符都被视为

    指令。在此模式下可进行删除、修改等动作。若要输入资料,则需进入输入

    模式。

    输入模式

    如何进入输入模式

    a (append) 由光标之后加入资料。

    A 由该行之末加入资料。

    i (insert) 由光标之前加入资料。

    I 由该行之首加入资料。

    o (open) 新增一行于该行之下以供输入资料。

    O 新增一行于该行之上以供输入资料。

    如何离开输入模式

    《ESC》 结束输入模式。

    指令模式

    光标的移动

    h 向左移一个字符。

    j 向上移一个字符。

    k 向下移一个字符。

    l 向右移一个字符。

    0 移至该行之首

    $ 移至该行之末。

    ^ 移至该行的第一个字符处。

    H 移至屏幕的第一列。

    M 移至屏幕的中间那列。

    L 移至屏幕的最后一列。

    G 移至该文件的最后一列。

    + 移至下一列的第一个字符处。

    - 移至上一列的第一个字符处。

    ( 移至该句之首。 (注一)

    ) 移至该句之末。

    { 移至该段落之首。 (注二)

    } 移至该段落之末。

    nG 移至该文件的第 n 列。

    n+ 移至光标所在位置之后的第 n 列。

    n- 移至光标所在位置之前的第 n 列。

    会显示该行的行号、文件名称、文件中最末行的行号、光标

    所在行号占总行号的百分比。

    注一:句子(sentence)在vi中是指以『!』、『.』或『?』结束的一串字。

    注二:段落(paragraph)在vi中是指以空白行隔开的文字。

    屏幕的移动

    屏幕往下卷一页。

    屏幕往上卷一页。

    屏幕往下卷半页。

    屏幕往上卷半页。

    屏幕往下卷一行。

    屏幕往上卷一行。

    删除、复制及修改指令介绍 (此单元较少使用)

    d(delete)、c(change)和y(yank)这一类的指令在 vi 中的指令格式为:

    Operator + Scope = command

    (运算子) (范围)

    运算子:

    d 删除指令。删除资料,但会将删除资料复制到内存缓冲区。

    y 将资料(字组、行列、句子或段落)复制到缓冲区。

    p 放置(put)指令,与 d 和 y 配和使用。可将最后delete或yank的资

    料放置于光标所在位置的行列下。

    c 修改(change)指令,类似delete与insert的组合。删除一个词组、句

    子等的资料,并插入新输入的资料。

    范围:

    e 由光标所在位置至该字符串的最后一个字符。

    w 由光标所在位置至下一个字符串的第一个字符。

    b 由光标所在位置至前一个字符串的第一个字符。

    $ 由光标所在位置至该行的最后一个字符。

    0 由光标所在位置至该行的第一个字符。

    ) 由光标所在位置至下一个句子的第一个字符。

    ( 由光标所在位置至该句子的第一个字符。

    { 由光标所在位置至该段落的最后一个字符。

    } 由光标所在位置至该段落的第一个字符。

    整行动作

    dd 删除整行。

    D 以行为单位,删除光标后的所有字符。

    cc 修改整行的内容。

    yy yank整行,使光标所在该行复制到内存缓冲区。

    删除与修改

    x 删除光标所在该字符。

    X 删除光标所在之前一字符。

    dd 删除光标所在该行。

    r 用接于此指令之后的字符取代(replace)光标所在字符。

    如: ra 将光标所在字符以 a 取代之。

    R 进入取代状态,直到《ESC》为止。

    s 删除光标所在的字符,并进入输入模式直到《ESC》。

    S 删除光标所在的该行资料,并进入输入模式直到《ESC》。

    移动与复制

    利用 delete 及 put 指令可完成资料移动的目的。

    利用 yank 及 put 指令可完成资料复制的目的。

    yank 和 delete 可将指定的资料复制到内存缓冲区,而通过 put 指令

    可将缓冲区内的资料复制到屏幕上。

    例:

    移动一行 .在该行执行 dd

    .光标移至目的地

    .执行 p

    复制一行 .在该行执行 yy

    .光标移至目的地

    .执行 p

    指令重复

    在指令模式中,可在指令前面加入一数字 n,则此指令动作会重复执行 n

    次。

    例:

    删除10行 .10dd

    复制10行 .10yy

    .光标移至目的地

    .p

    指标往下移10行 .10j

    取消前一动作(Undo)

    即复原执行上一指令前的内容。

    u 恢复最后一个指令之前的结果。

    U 恢复光标该行的所有改变。

    查找

    在vi中可查找某一字符串,使光标移至该处。

    /字符串 往光标之后寻找该字符串。

    字符串 往光标之前寻找该字符串。

    n 往下继续寻找下一个相同的字符串。

    N 往上继续寻找下一个相同的字符串。

    资料的连接

    J 句子的连接。将光标所在的下一行连接至光标该行的后面。

    若某行资料太长亦可将其分成两行,只要将光标移至分开点,进入输入模式

    (可利用 a、i等指令)再按《Enter》即可。

    环境的设定

    :set nu 设定资料的行号。

    :set nonu 取消行号设定。

    :set ai 自动内缩。

    :set noai 取消自动内缩。

    自动内缩(automatic indentation)

    在编辑文件或程序时,有时会遇到需要内缩的状况,『:set ai』即提供自

    动内缩的功能,用下例解释:

    .vi test

    .(进入编辑屏幕后)

    this is the test for auto indent

    《Tab》start indent ← :set ai (设自动内缩)

    《Tab》data

    《Tab》data

    《Tab》data ← :set noai (取消自动内缩)

    the end of auto indent.

    .注: 可删除《Tab》字符。

    ex指令

    读写资料

    :w 将缓冲区的资料写入硬盘中。

    :10,20w test 将第10行至第20行的资料写入test文件。

    :10,20w>>test 将第10行至第20行的资料加在test文件之后。

    :r test 将test文件的资料读入编辑缓冲区的最后。

    删除、复制及移动

    :10,20d 删除第10行至第20行的资料。

    :10d 删除第10行的资料。

    :%d 删除整个编辑缓冲区。

    :10,20co30 将第10行至第20行的资料复制至第30行之后。

    :10,20mo30 将第10行至第20行的资料移动至第30行之后。

    字符串搜寻与取代

    s(substitute)指令可查找某行列范围。

    g(global)指令则可查找整个编辑缓冲区的资料。

    s指令以第一个满足该条件的字符串为其取代的对象,若该行有数个满足该条

    件的字符串,也仅能取代第一个,若想取代所有的字符串则需加上g参数。

    :1,?$s/old/new/g 将文件中所有的『old』改成『new』。

    :10,20s/^/ / 将第10行至第20行资料的最前面插入5个空白。

    :%s/old/new/g 将编辑缓冲区中所有的『old』改成『new』。

    恢复编辑时被中断的文件

    在编辑过程中,若系统当掉或连线中断,而缓冲区的资料并还未

    被写回硬盘时,当再次回到系统,执行下列指令即可回复中断前

    的文件内容。

    %vi -r filename

    编辑多个文件

    vi还提供同时编辑多个文件的功能,方法如下:

    %vi file1 file2 ..

    当第一个文件编辑完成后,可利用『:w』将该缓冲区存档,而后

    再利用 『:n』载入下一个文件。

    展开全文
  • Linux vi 命令详解

    2021-05-16 16:23:20
    vi共分为三种模式:分别是一般模式,编辑模式与命令行模式一般模式:以vi打开一个文件就直接了一般模式(这是默认的模式)编辑模式:在指令模式下输入的按键“i, I, o, O, a, A, r, R”,vi即认为是在当前位置插入字符...

    vi共分为三种模式:分别是一般模式,编辑模式与命令行模式

    一般模式:以vi打开一个文件就直接了一般模式(这是默认的模式)

    编辑模式:在指令模式下输入的按键“i, I, o, O, a, A, r, R”,vi即认为是在当前位置插入字符。而在输入模式下,vi则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可(如a,A),而要从输入模式切换到指令模式,则需在输入模式下键入ESC键,如果不晓得现在是处于什么模式,可以多按几次[ESC],vi跳转到指令模式。

    1. 命令模式:

    ) 光标移至句尾

    ( 光标移至句首

    } 光标移至段落开头

    { 光标移至段落结尾

    2. vi移动光标的方法:

    G:移动到这个文件的最后一行(常用)

    nG:n为数字。移动到这个文件的第n行。

    gg:光标移动到第一行,相当于1G

    N[enter]:n为数字。光标向下移动n行

    N+[方向键上,下,左,右]:表示向那个方向移动行或字符

    到文件第一行

    :1

    到文件尾,利用正则里的语义

    :$

    另一些表达

    [[ 开头

    ]] 结尾

    [[^ 开头第一个字符

    ]]$ 结尾最后一个字符

    3.vi查找与替换

    /word 向下寻找一个名称word的字符

    ?word 向上寻找一个字符串名称为word的字符串

    n: 这个n是英文键,代表重复前一个查找的操作。也就是查找下一个

    N: 这个N是英文键,与n刚好相反,为反向进行前一个查找操作。查找上一个

    vi高级查找与替换

    :n1,n2s/word1/word2/g n1与n2为数字,在第n1行与n2行之间寻找word1,并将该字符串替换成word2

    :1,$s/word1/word2/g 从第一行到最后一行查找word1,并将该字符串替换成word2

    :1,$s/word1/word2/gc 从第一行到最后一行查找word1,并将该字符串替换成word2。替换之前显示提示字符给用户确认confirm

    4. vi显示行号/取消显示

    显示行号

    :set nu

    取消行号显示

    :set nonu

    5. vi删除命令

    dd: 删除光标所在的哪一行(常用)

    ndd: n为数字。删除光标所在的向下n行,例如20dd删除光标以下20行(常用)

    d1G:删除光标所在到第一行的所有数据

    dG: 删除冲贯标所在到最后一行的所有数据

    d$: 删除光标所在到第一行的所有数据

    d0: 那个数字的0,删除冲光标所在处到改行的最前面的一个字符

    x或X:删除一个字符,x删除光标后的,而X删除光标前的

    6. vi复制命令

    yy: 复制光标所在的那一行(常用)

    nyy:n为数字,复制光标所在的向下n行,例如20yy

    y1G:复制光标所在行到第一行的所有数据

    yG: 复制光标所在行到最后一行的所有数据

    y0: 复制光标所在的那个子都到该行行首的所有数据

    y$:复制光标所在的那个字符到该行行尾的所有数据

    7. vi黏贴命令

    p: p为将已复制的数据在光标下一行黏贴

    P: 大写P则为黏贴在光标上一行

    8. vi撤销命令:

    u: 撤销 (常用)

    Ctrl + r: 撤销的撤销 (常用)

    9. vi小数点.

    vi小数点.表示重复前一个操作的意思。重复删除,重复黏贴等操作,按下小数点"."

    10.vim 的块选择功能(Visual Block)

    v 字符选择,会将光标经过的地方反白选择

    V 行选择,会将光标经过的行反白选择

    [ctrl]+v 块选择,可以用长方形的方式选择数据

    配合命令:

    y 将反白的地方复制起来

    d 将反白的地方删除

    11. vim 多窗口功能

    :sp [filename] 打开新窗口,如果有家filename,表示在新窗口打开一个新文件

    [ctrl]+w 按住ctrl按键,按一下w键,会切换一个文档,再按一下切换下一个(貌似方向键没有用)

    转载:linux vi命令详解

    转自:http://www.cnblogs.com/mahang/archive/2011/09/01/2161672.html 刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编 ...

    linux vi命令详解

    刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 ...

    linux vi命令详解2

    刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 ...

    linux vi命令详解及使用技巧

    进入vi的命令vi filename :打开或新建文档,并将光标置于第一行首vi +n filename :打开文档,并将光标置于第n行首vi + filename :打开文档,并将光标置于最后一行首 ...

    Linux lsof命令详解和使用示例【转】

    所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接 ...

    &lpar;转&rpar;linux route命令详解

    linux route命令详解 原文:https://www.cnblogs.com/lpfuture/p/5857738.html   &&   http://blog.csdn.n ...

    &lbrack;转帖&rsqb;linux screen 命令详解,xshell关掉窗口或者断开连接,查看断开前执行的命令

    linux screen 命令详解,xshell关掉窗口或者断开连接,查看断开前执行的命令 https://binwaer.com/post/12.html yun install -y screen ...

    Linux常用命令详解—基于CentOS7

    ## Linux 目录- /:根目录,一般只存放目录,不存放文件- /bin -> /usr/bin:可执行二进制文件的目录,也是常用命令目录,如常用的命令 ls.cat.mv 等- /boot ...

    linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

    随机推荐

    iOS 用户的隐私数据-privacy-sensitive data

    1  Xcode 报错:This app has crashed because it attempted to access privacy-sensitive data without a usa ...

    angularjs 2&period;0 快速案例&lpar;1&rpar;

    前言 上一节我们已经把环境给搭建起来了,现在我们通过一个快速案例把angular 2.0 初步了解一下,后续我们会深入每一个细节,这个案例主要是一个[英雄(Hero)]列表的展示,创建,编辑.这个案例 ...

    使用CSS3制作立体效果的导航菜单

    效果如下: 也可以点击网址查看效果:http://keleyi.com/keleyi/phtml/html5/12.htm 请使用支持CSS3的浏览器访问本页面,获得更好效果. 源代码:

    C&num;读取XML文件并取值

    1.新建XML文件: <?xml version="1.0" encoding="utf-8" ?> < ...

    Father Christmas flymouse--POJ3160Tarjan

    Father Christmas flymouse Time Limit: 1000MS Memory Limit: 131072K Description After retirement as c ...

    LeetCode Maximal Square

    原题链接在这里:https://leetcode.com/problems/maximal-square/ 这是一道DP题,存储历史信息是到当前点能有的最大square, 用二维数组dp存储. 更新方 ...

    css(display,float,position)

    display 用来设置元素的显示方式 display : block | none | inline | inline-block inline:指定对象为内联元素 block:指定对象为块元素 i ...

    解题报告 HDU1087 Super Jumping&excl; Jumping&excl; Jumping&excl;

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

    vue本地项目设置通过手机访问

    最近再用vue写一个移动端的应用,想通过手机访问看看页面效果,于是有了下文. 1.shif+右键打开命令行工具,输入ipconfig,回车,得到电脑的ip 2.找到工作目录下的config文件夹中的i ...

    js将文字转化为语音并播放

    js将页面中的某些文字信息转化为语音并自动播放

    展开全文
  • linux vi常用操作详解

    2021-05-17 14:27:38
    q 强制退出, 再不保存修改时,直接退出 撤销 编辑了文档后,要撤销修改,在一般模式下按u进行撤销 恢复 当撤销多了时,要撤销撤销的内容,按ctrl + r 进行恢复 删除 x为向后删除一个字符 (相当于【del】键) X 为...

    1.基本操作

    进入vi

    vi 或者 vim 进入一个文件或者新建一个文件

    例如:vim 11.txt

    vi有3种模式

    一般模式:刚进入时、按esc时、

    编辑模式:按下字母【i, I, o, O, a, A, r, R】、按 insert 键

    命令行模式:按【 : / ? 】

    移动光标

    【h、j、k、l】,分别控制光标左、下、上、右移一格

    键盘方向键有同样的效果

    保存

    按 : 键 进入命令模式 再输入w,回车即保存修改

    :w

    退出

    :q 正常退出

    :!q 强制退出, 再不保存修改时,直接退出

    撤销

    编辑了文档后,要撤销修改,在一般模式下按u进行撤销

    恢复

    当撤销多了时,要撤销已撤销的内容,按ctrl + r 进行恢复

    删除

    x为向后删除一个字符 (相当于【del】键)

    X 为向前删除一个字符(相当于【backspace】键)

    定位但某行

    :n ,n为 具体的数字 。如 :3,定位到第3行

    2.复制拷贝删除

    该操作都是在一般模式下边操作

    复制

    yy 复制一行

    nyy复制多行,n代表具体的数字,如:3yy为复制光标所在行一下的3行数据

    拷贝

    p将已复制的数据在光标下一行粘贴上

    删除

    dd删除一行

    ndd删除多行,n代表具体的数字

    3.查找

    在一般模式下,按 / 或 ? 进入命令模式

    查找字符串

    /nnnn 或 ?nnnn ,nnnn为需要查找的字符串

    /word:向下寻找一个名称为word的字符串。

    ?word:向上寻找一个名称为word的字符串。

    查找字符串并显示格式

    :%s/nnnn//gn ,nnnn为需要查找的字符串

    查找的结果中移动

    n向下一个移动

    N向上一个移动

    4.设置

    全局行号显示

    :set nu,显示行号

    :set nonu,与 set nu 相反,为取消行

    自动缩进

    :set ai ,自动缩进

    :set noai,取消自动缩进

    附常用设置

    :set all 显示目前所有的环境参数设定值

    :set hlsearch 高亮度反白(高亮度搜寻)

    :set nohlsearch 取消高亮度反白(高亮度搜寻)

    :set backspace=2 在编辑的时候可随时用退格键删除 (0、1的时候,只针对刚输入的字符有效)

    :set autoindent 自动缩排

    :set noautoindent 取消自动缩排

    :set ruler 可显示最后一行的状态

    :set showmode 左下角那一行的状态

    :set nu 显示行号

    :set nonu 取消行号

    :set bg=dark 显示不同的底色色调

    :syntax on 进行语法检验,颜色显示

    :syntax off 关闭语法检验

    5.打开多个文件:

    1.vim还没有启动的时候:

    在终端里输入

    vim file1 file2 ... filen便可以打开所有想要打开的文件

    2.vim已经启动

    输入

    :open file

    可以再打开一个文件,并且此时vim里会显示出file文件的内容。

    3.同时显示多个文件:

    :split

    :vsplit

    :vs 文件路径/文件名 在新的垂直分屏中打开文件

    :sv 文件路径/文件名 在新的水平分屏中打开文件

    4.在文件之间切换:

    1.文件间切换

    Ctrl+6—下一个文件

    :bn—下一个文件

    :bp—上一个文件

    对于用(v)split在多个窗格中打开的文件,这种方法只会在当前窗格中切换不同的文件。

    2.在窗格间切换的方法

    Ctrl+w+方向键——切换到前/下/上/后一个窗格

    Ctrl+w+h/j/k/l ——同上

    Ctrl+ww——依次向后切换到下一个窗格中

    5.关闭文件:

    单个文件 :q 就可以了

    关闭所有: qa

    展开全文
  • Linux系统中的VI命令

    2021-01-20 12:26:24
    Linux系统中的VI命令 1、Vi介绍: Vi编辑器是所有Unix及Linx系统下标准的编辑器,类似于window系统下的notepad(记事本)。 Vi和Vim都是linux中的编辑器,不同的是,vim比较高级,可以视为vi的升级版本。 2、Vi三种...
  • 本文讲述一些linux vi命令的快捷键的使用,很有使用价值。希望对您有所帮助。光标控制命令命令 光标移动h或^h 向左移一个字符j或^j或^n 向下移一行k或^p 向上移一行l或空格 向右移一个字符G 移到文件的最后一行nG 移...
  • vi撤销与恢复

    千次阅读 2021-05-16 17:05:20
    vi中的撤销与重做 (2010-05-11 19:27:17)在vi中按u可以撤销一次操作u 撤销上一步的操作Ctrl+r 恢复上一步被撤销的操作注意:如果你输入“u”两次,你的文本恢复原样,那应该是你的Vim被配置在Vi兼容模式了。...
  • linux vi命令使用详解

    2021-05-15 18:25:13
    从shell中启动可视化编辑器vi filename 指示shell启动vi编辑器,并将参数filename传给它。如果当前目前中存在该文件,则vi编辑器将它解释为要打开的文件;如果没有该文件,则vi编译器创建新文件vi file1 file2 file3...
  • 写在分类之首-----to do list&excl;...学些增强学习(通过代码,练 ...和redis谈一场恋爱(第二天约会了解彼此)最近使用了Memcache,带来的便利已经让我欣喜若狂.开启了另一种又快又好的方式存储...
  • linux系统中编辑文档我们常用到vi编辑器。vi编辑器,通常称之为vi,是一种广泛存在于各种UNIX和Linux系统中的文本编辑程序。它的功能十分强大,但是命令繁多,不容易掌握,它可以执行输出、删除、查找、替换、块...
  • Linux vi命令模式

    2021-05-01 18:35:59
    1.命令模式 1.1移动光标 l 向右 h 向左 k 向上 ...1.2删除(其实是剪切) ...x 删除光标后的字符 ...X 删除光标前的字符 ...dw 删除一个单词(注意要把光标移动到单词的第一个字符) ...d 在可视模式下删除选中的字符3.撤
  • Linux vi中移动光标命令

    千次阅读 2021-05-11 21:01:08
    Linux vi中移动光标命令移动光标上:k nk:向上移动n行 9999k或gg可以移到第一行 G移到最后一行下:j nj:向下移动n行左:h nh:向左移动n列右:l nl:向右移动n列w:光标以单词向前移动 nw:光标向前移动n个单词 光标到单词...
  • 本文介绍在Vim编辑器中删除行的不同方法安装vim#在Ubuntu/Debian中的安装方式$sudoaptinstallvim#在RHEL/Centos中的安装方式#]yum-yinstallvim删除单行内容将光标移动到需要删除的行按一下ESC键,确保退出编辑模式按...
  • linuxvi和vim操作

    2021-05-16 19:09:16
    简单介绍vi 和 vim 类似于windows的文本编辑器所有的Linux系统都会内置vi文本编辑器vim可以看做是vi增强版,具有程序编辑能力,支持语法高亮,代码补全,编译及错误跳转等功能,因此被广泛使用如果Linux中没有vim这个命令...
  • 为什么要学vim所有的Unix-like 系统都会内建vi文本编辑器,其他的文本编辑器则不一定会存在;很多个别软件的编辑接口都会主动呼叫vi(例如:crontab、visudo、edquota);vim是vi的进阶版,具有程序编辑能力,例如 ...
  • Linuxvi的用法

    千次阅读 2022-02-17 11:14:52
    vi 有三种工作模式(普通模式) 1.输入模式 2.命令模式 3.末行模式 ese 退出到普通模式 输入模式: a 光标处的后面切换到输入 A 光标跳转到当前行的最末端 i 光标处的前面输入 I 光标跳到当前行的最前端 r 替换...
  • Linuxvi编辑器

    2022-02-14 16:28:12
    vi是Visual interface 的简称,可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的功能。 提示:以下是本篇文章正文内容,下面案例可供...
  • Linux Vi 文本编辑器常用命令

    千次阅读 2021-07-25 21:52:51
    *Linux Vi 文本编辑器常用命令 ** 引言:在Linux中我们常用的文本编辑器有Vi,Vim(Vi的增强版)。而且vi编辑器不仅仅是适用于Linux,它是所有Unix以及Linux系统下的标准编辑器,几乎适用于Unix、Linux系统的所有...
  • vi中按u可以撤销一次操作u撤销上一步的操作Ctrl+r恢复上一步被撤销的操作注意:如果你输入“u”两次,你的文本恢复原样,那应该是你的Vim被配置在Vi兼容模式了。重做如果你撤销得太多,你可以输入CTRL-R(redo)回退...
  • vi 的工作模式Vi 在初始启动后首先进入编辑模式,这时用户可以利用一些预先定义的按键来移动光标、删除文字、 复制或粘贴文字等。这些按键均是普通的字符,例如 l 是向右移动光标,相当于向右箭头键,k 是 向下移动...
  • Linuxvi的基本操作

    2021-06-18 15:06:37
    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。 1、vi的基本概念 基本上vi可以分为三种状态 1) 命令行模式command mode...
  • Linux——vi命令详解

    2022-04-05 16:20:49
    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他...
  • linux vi中没法输入和上下翻页

    千次阅读 2021-05-10 17:12:49
    Vi有三种基本的工作模式:指令行模式、文本输入模式、行末模式。指令模式(Command Mode) 下输入 a、i、o进入文本输入模式(Input Mode)按esc退出输入模式,然后可以翻页了vi一般用法一般模式 编辑模式 指令模式h 左 a...
  • Linuxvi命令使用详解

    2022-03-19 17:25:02
    vi编辑器是所有Unix及Linux系统下标准的编辑器,本文主要是介绍vi的基本常用方法和命令。 操作模式 1,命令行模式 2,编辑模式 3,切换的方式:在命令行模式下,进入编辑模式,可以按i键:插入编辑模式;s键:替换...
  • linuxvi常用快捷键

    2021-09-11 21:28:21
    本文记录vi编辑器的一些快捷操作: vi +行号 文件名:打开文件并将光标移动到第五行的行首 eg:$ vi +6 hello.c vi + 文件名:打开文件并将光标移动到最后一行的行首 eg:$ vi + hello.c vi +/模式匹配符 文件名:...
  • Linux vi、vim使用手册

    2021-06-25 13:07:58
    常用命令命令线路图学习提示4.1 移动(基本)1) 上、下、左、右2) 行内移动3) 行数移动4) 屏幕移动4.2 移动(程序)1) 段落移动2) 括号切换3) 标记4.3 选中文本(可视模式)4.4 撤销和恢复撤销4.5 删除文本4.6 复制...
  • 看老师的 ppt 做一点笔记 ,方便以后查找,记是不可能都记住的,只有随用随学,随查...它功能非常强大,通过使用vi编辑器,可以对文本进行创建、查找、替换、删除、复制和粘贴等操作。 vi编辑器有3种基本工作模式,.
  • Linux vi常见命令使用案例 声明与简介 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理。本文主要介绍Linux内置的编辑器vi的使用。 vi编辑器是所有...
  • Linux编辑工具vi命令

    2021-05-16 04:03:37
    vi 打开文件vi 文件名 :打开或编辑文件vi 文件名 +行 :打开文件并把光标定位到指定行(vi 文件名 + :光标定位到文件末尾)vi异常退出,vi打开后输入d删除交换文件vi的三种工作模式命令模式打开文件就进入命令模式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,636
精华内容 7,454
关键字:

linux vi 撤销删除