精华内容
下载资源
问答
  • vim 删除一行_Vim用法

    2020-12-05 06:20:37
    Vim是从 vi 发展出来的个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则...

    Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

    简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

    原文参考Linux vi/vim | 菜鸟教程

    连 vim 的官方网站 自己也说 vim 是一个程序开发工具而不是文字处理软件。

    vim 键盘图:

    b909e1663818638839b6fac7adf1ceb3.png

    vi/vim 的使用

    基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)。 这三种模式的作用分别是:

    命令模式:

    用户刚刚启动 vi/vim,便进入了命令模式。

    此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

    以下是常用的几个命令:

    • i 切换到输入模式,以输入字符。
    • x 删除当前光标所在处的字符。
    • : 切换到底线命令模式,以在最底一行输入命令。

    若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

    命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

    输入模式

    在命令模式下按下i就进入了输入模式。

    在输入模式中,可以使用以下按键:

    • 字符按键以及Shift组合,输入字符
    • ENTER,回车键,换行
    • BACK SPACE,退格键,删除光标前一个字符
    • DEL,删除键,删除光标后一个字符
    • 方向键,在文本中移动光标
    • HOME/END,移动光标到行首/行尾
    • Page Up/Page Down,上/下翻页
    • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
    • ESC,退出输入模式,切换到命令模式

    底线命令模式

    在命令模式下按下:(英文冒号)就进入了底线命令模式。

    底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

    在底线命令模式中,基本的命令有(已经省略了冒号):

    • q 退出程序
    • w 保存文件

    按ESC键可随时退出底线命令模式。

    简单的说,我们可以将这三个模式想成底下的图标来表示:

    b45ce2492ff7042edbaaa2c2c0009c73.png

    vi/vim 使用实例

    使用 vi/vim 进入一般模式

    如果你想要使用 vi 来建立一个名为 test.txt 的文件时,你可以这样做:

    $ vim runoob.txt

    直接输入 vi 文件名 就能够进入 vi 的一般模式了。请注意,记得 vi 后面一定要加文件名,不管该文件存在与否!

    757dfc2e7eeb52afd9402c6673a8cc24.png

    按下 i 进入输入模式(也称为编辑模式),开始编辑文字

    在一般模式之中,只要按下 i, o, a 等字符就可以进入输入模式了!

    在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示。

    这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。

    4fdb15fce2ec9a550a7517e34d16dd7b.png

    按下 ESC 按钮回到一般模式

    好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 Esc 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!

    在一般模式中按下 :wq 储存后离开 vi

    OK,我们要存档了,存盘并离开的指令很简单,输入 :wq 即可保存离开!

    a87d0cc04f96372c5f266fb6d67944a9.png

    OK! 这样我们就成功创建了一个 runoob.txt 的文件。

    vi/vim 按键说明

    除了上面简易范例的 i, Esc, :wq 之外,其实 vim 还有非常多的按键可以使用。

    第一部份:一般模式可用的光标移动、复制粘贴、搜索替换等

    移动光标的方法

    h 或 向左箭头键(←)

    光标向左移动一个字符

    j 或 向下箭头键(↓)

    光标向下移动一个字符

    k 或 向上箭头键(↑)

    光标向上移动一个字符

    l 或 向右箭头键(→)

    光标向右移动一个字符

    如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!

    [Ctrl] + [f]

    屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)

    [Ctrl] + [b]

    屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)

    [Ctrl] + [d]

    屏幕『向下』移动半页

    [Ctrl] + [u]

    屏幕『向上』移动半页

    +

    光标移动到非空格符的下一行

    -

    光标移动到非空格符的上一行

    n<space>

    那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。

    0 或功能键[Home]

    这是数字『 0 』:移动到这一行的最前面字符处 (常用)

    $ 或功能键[End]

    移动到这一行的最后面字符处(常用)

    H

    光标移动到这个屏幕的最上方那一行的第一个字符

    M

    光标移动到这个屏幕的中央那一行的第一个字符

    L

    光标移动到这个屏幕的最下方那一行的第一个字符

    G

    移动到这个档案的最后一行(常用)

    nG

    n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)

    gg

    移动到这个档案的第一行,相当于 1G 啊! (常用)

    n<Enter>

    n 为数字。光标向下移动 n 行(常用)

    搜索替换

    /word

    向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)

    ?word

    向光标之上寻找一个字符串名称为 word 的字符串。

    n

    这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!

    N

    这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。

    使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!

    :n1,n2s/word1/word2/g

    n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:
    『:100,200s/vbird/VBIRD/g』。(常用)

    :1,$s/word1/word2/g:%s/word1/word2/g

    从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)

    :1,$s/word1/word2/gc:%s/word1/word2/gc

    从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)

    删除、复制与贴上

    x, X

    在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)

    nx

    n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。

    dd

    删除游标所在的那一整行(常用)

    ndd

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

    d1G

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

    dG

    删除光标所在到最后一行的所有数据

    d$

    删除游标所在处,到该行的最后一个字符

    d0

    那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符

    yy

    复制游标所在的那一行(常用)

    nyy

    n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)

    y1G

    复制游标所在行到第一行的所有数据

    yG

    复制游标所在行到最后一行的所有数据

    y0

    复制光标所在的那个字符到该行行首的所有数据

    y$

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

    p, P

    p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)

    J

    将光标所在行与下一行的数据结合成同一行

    c

    重复删除多个数据,例如向下删除 10 行,[ 10cj ]

    u

    复原前一个动作。(常用)

    [Ctrl]+r

    重做上一个动作。(常用)

    这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦!

    .

    不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)

    第二部份:一般模式切换到编辑模式的可用的按钮说明

    进入输入或取代的编辑模式

    i, I

    进入输入模式(Insert mode):
    i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用)

    a, A

    进入输入模式(Insert mode):
    a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用)

    o, O

    进入输入模式(Insert mode):
    这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』; O 为在目前光标所在处的上一行输入新的一行!(常用)

    r, R

    进入取代模式(Replace mode):
    r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)

    上面这些按键中,在 vi 画面的左下角处会出现『--INSERT--』或『--REPLACE--』的字样。 由名称就知道该动作了吧!!特别注意的是,我们上面也提过了,你想要在档案里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入喔!

    [Esc]

    退出编辑模式,回到一般模式中(常用)

    第三部份:一般模式切换到指令行模式的可用的按钮说明

    指令行的储存、离开等指令

    :w

    将编辑的数据写入硬盘档案中(常用)

    :w!

    若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!

    :q

    离开 vi (常用)

    :q!

    若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。

    注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~

    :wq

    储存后离开,若为 :wq! 则为强制储存后离开 (常用)

    ZZ

    这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!

    :w [filename]

    将编辑的数据储存成另一个档案(类似另存新档)

    :r [filename]

    在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面

    :n1,n2 w [filename]

    将 n1 到 n2 的内容储存成 filename 这个档案。

    :! command

    暂时离开 vi 到指令行模式下执行 command 的显示结果!例如
    『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!

    vim 环境的变更

    :set nu

    显示行号,设定之后,会在每一行的前缀显示该行的行号

    :set nonu

    与 set nu 相反,为取消行号!

    特别注意,在 vi/vim 中,数字是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。

    举例来说,要删除 50 行,则是用 『50dd』 对吧! 数字加在动作之前,如我要向下移动 20 行呢?那就是『20j』或者是『20↓』即可。

    Linux 磁盘管理

    linux yum 命令

    1 篇笔记 写笔记

    1. 荣书

    zrs***07@163.com

    vim 中批量添加注释

    方法一 :块选择模式

    批量注释:

    Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的 I 进入行首插入模式输入注释符号如 //#,输入完毕之后,按两下 ESCVim 会自动将你选中的所有行首都加上注释,保存退出完成注释。

    取消注释:

    Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意 // 要选中两个,选好之后按 d 即可删除注释,ESC 保存退出。

    方法二: 替换命令

    批量注释。

    使用下面命令在指定的行首添加注释。

    使用名命令格式: :起始行号,结束行号s/^/注释符/g(注意冒号)。

    取消注释:

    使用名命令格式: :起始行号,结束行号s/^注释符//g(注意冒号)。

    例子:

    1、在 10 - 20 行添加 // 注释

    :10,20s#^#//#g

    2、在 10 - 20 行删除 // 注释

    :10,20s#^//##g

    3、在 10 - 20 行添加 # 注释

    :10,20s/^/#/g

    4、在 10 - 20 行删除 # 注释

    :10,20s/#//g

    :6��ǡ��?�#�

    展开全文
  • 因为Vim操作其实是种语言系统,这个语言系统是针对文字编辑设计的。是系统就是有结构的,这个文章就是要告诉你的Vim的基本语言结构以及如果用这个语言表达文字编辑的各种场景。掌握Vim,提高效率最主要的事情是...

    什么是最后一个教程呢?就是说看完这个教程,以后再也不需要诸如:Vim快速入门,3小时学会Vim等等之类的入门教程了。

    为什么可以写出最后一个教程?因为Vim操作其实是一种语言系统,这个语言系统是针对文字编辑设计的。是系统就是有结构的,这个文章就是要告诉你的Vim的基本语言结构以及如果用这个语言表达文字编辑的各种场景。

    掌握Vim,提高效率最主要的事情是掌握Vim的语言,并且在这个语言框架内描述问题。

    最后我会用Vim语言说一些话,猜猜他们都是什么意思?不过让我们先来看看Vim语言的基本元素和规则。

    0、Vim 语言

    编辑文字主要涉及定位和操作,定位就是找到想要操作的位置,比如移动光标,翻页,搜索等等;操作就是实际的动作,比如删除、替换、复制、粘贴等等。

    为了完成上述操作,Vim的语言中主要包含三种词汇:动词,名词和形容词。通常Vim语言中的词汇用一个字母就可以表示,换句话说,一个字母或者符号就是一个词。后面我们会发现,有时候名词可以做动词用(就像我们的自然语言)。需要注意的是,Vim中大写和小写通常代表了类似词意的不同应用形式。

    其中有一些词汇会将我们带入不同的“模式”中,或者说切换“语境”。也就是说,在不同的语境中,同的词会有不一样的意义。

    1、基本元素

    动词,表达动作:

    • v:选择。(大写)选择一行
    • d:删除。(大写)删除一行
    • y:复制。(大写)复制一行
    • yy: 另一种复制一行
    • p:粘贴。(大写) 在光标前粘贴
    • c:改变。
    • r:替换
    • /:搜索
    • ~:改变大小写
    • t:到,搜索并把光标停在目标前。(大写)向前搜索
    • f:到,搜索并把光标停在目标上 。(大写)向前搜索
    • hjkl:经典的移动光标的词汇,左、下、上、右
    • u:Undo
    • .: Redo
    • :切换到执行模式

    名词,Vim中叫文字对象(Text Ovjects),他们是我们表达基本客体。

    • w:词,大写意味着忽略标点。动名词,光标移动一个词,大写则向前移动
    • s:句子。动名词,光标移动一个句子,大写则向前移动
    • p:段落。动名词,光标移动一个段落,大写则向前移动
    • (or ):句子, 当在某个语境 s 有其他意思的时候,用这个
    • {or} :也是段落的意思,当在某个语境 p 有其他意思的时候,用这个

    需要注意的是这些名词都可以当作动词使用。

    形容词,这些词用在动词或者名词前面:

    • i:里面
    • a:周围
    • 数字:表达数量

    用Vim说句话

    我们用上面的元素尝试组成几句话:

    • 删除2个词:d2w
    • 选择1个字母:v. 这并没有太多意义,因为你的光标所在的那个字母已经代表了选择
    • 改变词以及周边标点:caw。Vim会删除这个词,然后进入插入模式,你就可以输入新的内容了
    • 拷贝2个词:y2w
    • 改变从光标到下一个分号之间的内容:ct;
    • 改变""内部的内容:ci"。会删除"" 内部的内容,并且进入插入模式
    • 选择()内的内容:vi(
    • 选择2级()的内容:v2i(

    一开始这些操作听起来很奇怪,但是一旦你习惯了这种表达方式,就会发现这是一种可以表达更加复杂编辑逻辑的方式。你基本上用几个字母就告诉了编辑器你想要做的事情。

    2、模式(语境)

    Vim与其他编辑器最大的不同在于它包含了多种模式,每种模式下,字符命令都有不同的意义,换句话说,在不同的语境下,基本词汇具有不同的意思。这在自然语言里非常常见。

    Vim主要包含三个模式:命令模式、插入模式、选择模式和执行模式。下面这个图表达了如何在不同模式之间切换。执行模式没有话在图里,:可以进入执行模式。

    56b8ec6a10830ebc54c10367fcd4b3fb.png
    Image from Michael Jakl

    命令模式下,绝大部分的名词、形容词如果单独使用,他们都会变成动词,多数是跟移动光标相关,少数与切换状态有关。当然,如果他们跟在动词后面,那么很自然他们还是名词。比如 w就是向前移动一个词,而d2w中,w还是名词,意为删除2个词。

    形容词,在命令状态单独使用时:

    • i:切换插入状态,插入在光标前。
    • I:切换插入状态,插入在本行前
    • a:切换插入状态,插入在光标后
    • A: 切换插入状态,插入在本行后
    • o:切换插入状态,插入在下一行
    • O:切换插入状态,插入在上一行

    名词,在命令状态单独使用时,都会变成移动光标的动词。类似hjkl

    选择模式,是进行复杂选择和操作的模式。在这模式中,所有的动词均有效。需要注意的是按照句子移动和段落移动,只能使用{(而不能使用s和p,因为他们是替换和粘贴的意思。

    • v : 进入选择模式
    • V :进入选择模式,以行为单位
    • Ctrl+v :以列为单位选择

    执行模式,就是通过:,让vim执行一些命令

    • :w 写入文件
    • :q 退出
    • :q! 强制退出
    • :wq 写入并退出
    • :saveas ~/path 另存为

    ESC是一个特殊的键,他会从把编辑器从任意状态切换会默认的命令行状态。

    3、一些问题

    我列出一些命令,大家看看他们的功能是什么?

    • vwwy
    • Vjjd
    • vip
    • vipyjjp
    • 0i:j0vG.

    参考

    • https://vim.rtorr.com/
    • https://danielmiessler.com/study/vim/
    • https://www.math.usm.edu/lambers/cos702/cos702_files/documentation/utilities_doc/vim_tutorial.html#fn1
    • https://medium.com/usevim/vim-101-quick-movement-c12889e759e0

    Change Log

    • 2020-03-07 完成初稿
    展开全文
  • 文章包含以下内容【目录】命令历史启动vim文件命令vim模式导航命令插入命令查找命令替换命令移动命令撤销与重做删除命令拷贝和粘贴剪切命令退出命令窗口命令执行shell命令注释命令帮助命令其他非编辑命令命令历史以:...
    7bef1e3012da641ff0a4c656f9f317a4.png

    文章包含以下内容【目录

    • 命令历史
    • 启动vim
    • 文件命令
    • vim模式
    • 导航命令
    • 插入命令
    • 查找命令
    • 替换命令
    • 移动命令
    • 撤销与重做
    • 删除命令
    • 拷贝和粘贴剪切命令
    • 退出命令
    • 窗口命令
    • 执行shell命令
    • 注释命令
    • 帮助命令
    • 其他非编辑命令

    命令历史

    以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。

    启动vim

    在命令行窗口中输入以下命令即可

    vim 直接启动vim

    vim filename 打开vim并创建名为filename的文件

    文件命令

    打开单个文件

    vim file

    同时打开多个文件

    vim file1 file2 file3 ...

    在vim窗口中打开一个新文件

    :open file

    在新窗口中打开文件

    :split file

    切换到下一个文件

    :bn

    切换到上一个文件

    :bp

    查看当前打开的文件列表,当前正在编辑的文件会用[]括起来。

    :args

    打开远程文件,比如ftp或者share folder

    :e ftp://192.168.10.76/abc.txt

    :e qadriveest1.txt

    vim的模式

    正常模式(按Esc或Ctrl+[进入) 左下角显示文件名或为空

    插入模式(按i键进入) 左下角显示--INSERT--

    可视模式(不知道如何进入) 左下角显示--VISUAL--

    导航命令

    % 括号匹配

    插入命令

    i 在当前位置生前插入

    I 在当前行首插入

    a 在当前位置后插入

    A 在当前行尾插入

    o 在当前行之后插入一行

    O 在当前行之前插入一行

    查找命令

    /text 查找text,按n健查找下一个,按N健查找前一个。

    ?text 查找text,反向查找,按n健查找下一个,按N健查找前一个。

    vim中有一些特殊字符在查找时需要转义 .*[]^%/?~$

    :set ignorecase 忽略大小写的查找

    :set noignorecase 不忽略大小写的查找

    查找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按*或#键即可以该单词进行搜索,相当于/搜索。而#命令相当于?搜索。

    :set hlsearch 高亮搜索结果,所有结果都高亮显示,而不是只显示一个匹配。

    :set nohlsearch 关闭高亮搜索显示

    :nohlsearch 关闭当前的高亮显示,如果再次搜索或者按下n或N键,则会再次高亮。

    :set incsearch 逐步搜索模式,对当前键入的字符进行搜索而不必等待键入完成。

    :set wrapscan 重新搜索,在搜索到文件头或尾时,返回继续搜索,默认开启。

    替换命令

    ra 将当前字符替换为a,当期字符即光标所在字符。

    s/old/new/ 用old替换new,替换当前行的第一个匹配

    s/old/new/g 用old替换new,替换当前行的所有匹配

    %s/old/new/ 用old替换new,替换所有行的第一个匹配

    %s/old/new/g 用old替换new,替换整个文件的所有匹配

    :10,20 s/^/ /g 在第10行知第20行每行前面加四个空格,用于缩进。

    ddp 交换光标所在行和其下紧邻的一行。

    移动命令

    h 左移一个字符

    l 右移一个字符,这个命令很少用,一般用w代替。

    k 上移一个字符

    j 下移一个字符

    以上四个命令可以配合数字使用,比如20j就是向下移动20行,5h就是向左移动5个字符,在Vim中,很多命令都可以配合数字使用,比如删除10个字符10x,在当前位置后插入3个!,3a!,这里的Esc是必须的,否则命令不生效。

    w 向前移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首。此命令快,可以代替l命令。

    b 向后移动一个单词 2b 向后移动2个单词

    e,同w,只不过是光标停在单词尾部

    ge,同b,光标停在单词尾部。

    ^ 移动到本行第一个非空白字符上。

    0(数字0)移动到本行第一个字符上,

    移动到本行第一个字符。同0健。

    $ 移动到行尾 3$ 移动到下面3行的行尾

    gg 移动到文件头。 = [[

    G(shift + g) 移动到文件尾。 = ]]

    f(find)命令也可以用于移动,fx将找到光标后第一个为x的字符,3fd将找到第三个为d的字符。

    F 同f,反向查找。

    跳到指定行,冒号+行号,回车,比如跳到240行就是 :240回车。另一个方法是行号+G,比如230G跳到230行。

    Ctrl + e 向下滚动一行

    Ctrl + y 向上滚动一行

    Ctrl + d 向下滚动半屏

    Ctrl + u 向上滚动半屏

    Ctrl + f 向下滚动一屏

    Ctrl + b 向上滚动一屏

    撤销和重做

    u 撤销(Undo)

    U 撤销对整行的操作

    Ctrl + r 重做(Redo),即撤销的撤销。

    删除命令

    x 删除当前字符

    3x 删除当前光标开始向后三个字符

    X 删除当前字符的前一个字符。X=dh

    dl 删除当前字符, dl=x

    dh 删除前一个字符

    dd 删除当前行

    dj 删除上一行

    dk 删除下一行

    10d 删除当前行开始的10行。

    D 删除当前字符至行尾。D=d$

    d$ 删除当前字符之后的所有字符(本行)

    kdgg 删除当前行之前所有行(不包括当前行)

    jdG(jd shift + g) 删除当前行之后所有行(不包括当前行)

    :1,10d 删除1-10行

    :11,$d 删除11行及以后所有的行

    :1,$d 删除所有行

    J(shift + j) 删除两行之间的空行,实际上是合并两行。

    拷贝和粘贴

    yy 拷贝当前行

    nyy 拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。

    p 在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。

    shift+p 在当前行前粘贴

    :1,10 co 20 将1-10行插入到第20行之后。

    :1,$ co $ 将整个文件复制一份并添加到文件尾部。

    正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按y即可复制

    ddp交换当前行和其下一行

    xp交换当前字符和其后一个字符

    剪切命令

    正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按d即可剪切

    ndd 剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴

    :1,10d 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。

    :1, 10 m 20 将第1-10行移动到第20行之后。

    退出命令

    :wq 保存并退出

    ZZ 保存并退出

    :q! 强制退出并忽略所有更改

    :e! 放弃所有修改,并打开原来文件。

    窗口命令

    :split或new 打开一个新窗口,光标停在顶层的窗口上

    :split file或:new file 用新窗口打开文件

    split打开的窗口都是横向的,使用vsplit可以纵向打开窗口。

    Ctrl+ww 移动到下一个窗口

    Ctrl+wj 移动到下方的窗口

    Ctrl+wk 移动到上方的窗口

    关闭窗口

    :close 最后一个窗口不能使用此命令,可以防止意外退出vim。

    :q 如果是最后一个被关闭的窗口,那么将退出vim。

    ZZ 保存并退出。

    关闭所有窗口,只保留当前窗口

    :only

    录制宏

    按q键加任意字母开始录制,再按q键结束录制(这意味着vim中的宏不可嵌套),使用的时候@加宏名,比如qa。。。q录制名为a的宏,@a使用这个宏。

    执行shell命令

    :!command

    :!ls 列出当前目录下文件

    :!perl -c script.pl 检查perl脚本语法,可以不用退出vim,非常方便。

    :!perl script.pl 执行perl脚本,可以不用退出vim,非常方便。

    :suspend或Ctrl - Z 挂起vim,回到shell,按fg可以返回vim。

    注释命令

    perl程序中#开始的行为注释,所以要注释某些行,只需在行首加入#

    3,5 s/^/#/g 注释第3-5行

    3,5 s/^#//g 解除3-5行的注释

    1,$ s/^/#/g 注释整个文档。

    :%s/^/#/g 注释整个文档,此法更快。

    帮助命令

    :help or F1 显示整个帮助

    :help xxx 显示xxx的帮助,比如 :help i, :help CTRL-[(即Ctrl+[的帮助)。

    :help 'number' Vim选项的帮助用单引号括起

    :help 特殊键的帮助用<>扩起

    :help -t Vim启动参数的帮助用-

    :help i_ 插入模式下Esc的帮助,某个模式下的帮助用模式_主题的模式

    帮助文件中位于||之间的内容是超链接,可以用Ctrl+]进入链接,Ctrl+o(Ctrl + t)返回

    其他非编辑命令

    . 重复前一次命令

    :set ruler? 查看是否设置了ruler,在.vimrc中,使用set命令设制的选项都可以通过这个命令查看

    :scriptnames 查看vim脚本文件的位置,比如.vimrc文件,语法文件及plugin等。

    :set list 显示非打印字符,如tab,空格,行尾等。如果tab无法显示,请确定用set lcs=tab:>-命令设置了.vimrc文件,并确保你的文件中的确有tab,如果开启了expendtab,那么tab将被扩展为空格。

    Vim教程

    在Unix系统上

    $ vimtutor

    在Windows系统上

    :help tutor

    :syntax 列出已经定义的语法项

    :syntax clear 清除已定义的语法规则

    :syntax case match 大小写敏感,int和Int将视为不同的语法元素

    :syntax case ignore 大小写无关,int和Int将视为相同的语法元素,并使用同样的配色方案


    文章来源:perlmanwww.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html
    展开全文
  • vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode) 和 底线命令模式(Last line mode)。...比如我们此时按下i,并不会输入个字符,i被当作了个命令。...
    5721d3cb151b1925ba01a3925bef4a03.png
    339099630d059e1452599e58a3b49828.png

    vi/vim 的使用

    基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode) 和  底线命令模式(Last line mode)。这三种模式的作用分别是:

    bdf424d4106ed5febadd713e318e2c3d.png

    命令模式:

    用户刚刚启动 vi/vim,便进入了命令模式。

    此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

    以下是常用的几个命令:

    • i 切换到输入模式,以输入字符。
    • x 删除当前光标所在处的字符。
    • : 切换到底线命令模式,以在最底一行输入命令。

    若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

    命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

    输入模式

    在命令模式下按下i就进入了输入模式。

    在输入模式中,可以使用以下按键:

    字符按键以及Shift组合,输入字符 ENTER,回车键,换行 BACK SPACE,退格键,删除光标前一个字符 DEL,删除键,删除光标后一个字符 方向键,在文本中移动光标 HOME/END,移动光标到行首/行尾 Page Up/Page Down,上/下翻页 Insert,切换光标为输入/替换模式,光标将变成竖线/下划线 ESC,退出输入模式,切换到命令模式

    底线命令模式

    在命令模式下按下:(英文冒号)就进入了底线命令模式。

    底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

    在底线命令模式中,基本的命令有(已经省略了冒号):

    q 退出程序 w 保存文件 按ESC键可随时退出底线命令模式。

    启动Vim

    vim -c cmd file: 在打开文件前,先执行指定的命令;
    vim -r file: 恢复上次异常退出的文件;
    vim -R file: 以只读的方式打开文件,但可以强制保存;
    vim -M file: 以只读的方式打开文件,不可以强制保存;
    vim -y num file: 将编辑窗口的大小设为num行;
    vim + file: 从文件的末尾开始;
    vim +num file: 从第num行开始;
    vim +/string file: 打开file,并将光标停留在第一个找到的string上。
    vim –remote file: 用已有的vim进程打开指定的文件。 如果你不想启用多个vim会话,这个很有用。但要注意, 如果你用vim,会寻找名叫VIM的服务器;如果你已经有一个gvim在运行了, 你可以用gvim –remote file在已有的gvim中打开文件。

    翻屏

    ctrl+f: 下翻一屏。
    ctrl+b: 上翻一屏。
    ctrl+d: 下翻半屏。
    ctrl+u: 上翻半屏。
    ctrl+e: 向下滚动一行。
    ctrl+y: 向上滚动一行。
    n%: 到文件n%的位置。
    zz: 将当前行移动到屏幕中央。
    zt: 将当前行移动到屏幕顶端。
    zb: 将当前行移动到屏幕底端。

    基本插入

    i: 在光标前插入;一个小技巧:按8,再按i,进入插入模式,输入=, 按esc进入命令模式,就会出现8个=。 这在插入分割线时非常有用,如30i+就插入了36个+组成的分割线。
    I: 在当前行第一个非空字符前插入;
    gI: 在当前行第一列插入;
    a: 在光标后插入;
    A: 在当前行最后插入;
    o: 在下面新建一行插入;
    O: 在上面新建一行插入;
    :r filename在当前位置插入另一个文件的内容。
    :[n]r filename在第n行插入另一个文件的内容。
    :r !date 在光标处插入当前日期与时间。同理,:r !command可以将其它shell命令的输出插入当前文档。

    移动光标

    # hjkl
    # 2w 向前移动两个单词
    # 3e 向前移动到第 3 个单词的末尾
    # 0 移动到行首
    # $ 当前行的末尾
    # gg 文件第一行
    # G 文件最后一行
    # 行号+G 指定行
    # +o 跳转回之前的位置
    # +i 返回跳转之前的位置

    H :光标移至屏幕顶行
    M :光标移至屏幕中间行
    L :光标移至屏幕最后行

    0:(注意是数字零)光标移至当前行首
    $:光标移至当前行尾


    vi 编辑器中跳到文件的第一行:
       a  输入 :0 或者 :1   回车
       b  键盘按下 小写 gg

    vi 编辑器跳到文件最后一行:
       a 输入 :$   回车
       b 键盘按下大写 G
       c 键盘按 shift + g  (其实和第二种方法一样)

    退出

    #  进入正常模式
    # :q! 不保存退出
    # :wq 保存后退出

    删除

    # x 删除当前字符
    # dw 删除至当前单词末尾
    # de 删除至当前单词末尾,包括当前字符
    # d$ 删除至当前行尾
    # dd 删除整行
    # 2dd 删除两行

    修改

    # i 插入文本
    # A 当前行末尾添加
    # r 替换当前字符
    # o 打开新的一行并进入插入模式

    撤销

    # u 撤销
    # +r 取消撤销

    复制粘贴剪切

    # v 进入可视模式
    # y 复制
    # p 粘贴
    # yy 复制当前行
    # dd 剪切当前行

    文件

    # :e! 强制刷新该文件
    # +g 显示当前行以及文件信息

    查找

    # / 正向查找(n:继续查找,N:相反方向继续查找)
    # ? 逆向查找
    # % 查找配对的 {,[,(
    # :set ic 忽略大小写
    # :set noic 取消忽略大小写
    # :set hls 匹配项高亮显示
    # :set is 显示部分匹配

    /something: 在后面的文本中查找something。
    ?something: 在前面的文本中查找something。
    /pattern/+number: 将光标停在包含pattern的行后面第number行上。
    /pattern/-number: 将光标停在包含pattern的行前面第number行上。
    n: 向后查找下一个。
    N: 向前查找下一个。

    替换

    # :s/old/new 替换该行第一个匹配串
    # :s/old/new/g 替换全行的匹配串
    # :%s/old/new/g 替换整个文件的匹配串

    折叠

    # zc 折叠
    # zC 折叠所有嵌套
    # zo 展开折叠
    # zO 展开所有折叠嵌套

    执行外部命令

    # :!shell 执行外部命令

    字体

    #  - 缩小
    #  shift + 放大
    #  0 还原

    分屏

    $ Ctrl+W v  // 左右
    $ Ctrl+W s  // 上下

    # 移动光标
    $ Ctrl+W h/j/k/l  // 左/上/下/右

    # 移动分屏
    $ Ctrl+W H/J/K/L  // 左/上/下/右

    # 修改屏幕尺寸
    $ Ctrl+W =/+/-

    基本配置

    `.vimrc` 是 `Vim` 的配置文件,需要我们自己创建

    cd
    touch .vimrc

    取消备份

    set nobackup
    set noswapfile

    文件编码

    set encoding=utf-8

    查找

    set ic
    set hls
    set is

    显示行号

    set number

    显示光标当前位置

    set ruler

    设置缩进

    set cindent

    set tabstop=2
    set shiftwidth=2

    突出显示当前行

    set cursorline

    左下角显示当前 vim 模式

    set showmode

    代码折叠

    set nofoldenable

    主题

    syntax enable
    set background=dark
    colorscheme solarized

    参考

    • 【vim常用命令总结】https://www.cnblogs.com/chenyablog/p/10399601.html
     
    展开全文
  • 本文以Linux操作系统为测试环境,并且要求对vim有些许了解,如果对vim完全没有概念,建议在命令行下输入vimtutor获取vim的入门教程,花个小时左右即可入门。、我对vim的定位据我了解,在命令行时代,如果根据...
  • Linux vi/vim所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器...Vim是从 vi 发展出来的个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi...
  • Vim普遍被推崇为类Vi编辑器中最好的个,事实上真正的劲敌来自Emacs的不同变体vim模式vim 打开,就会进入所谓的普通模式(Normal),在这个模式下,大家输入的所有内容都会被 vim 解析成相应的指令并执行。...
  • 、简介Vim个类似于Vi的文本编辑器,不过在Vi的基础上增加了很多新的特性,Vim普遍被推崇为类Vi编辑器中最好的个,事实上真正的劲敌来自Emacs的不同变体。1999年Emacs被选为Linuxworld文本编辑分类的优胜者,...
  • 关于Vim编译器在热门Linux操作系统中都会默认安装款超好用的文本编辑器——名字叫“vim”,vim是vi编辑器的升级版。 vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。2.Vim的几种...
  • 前言Vim 是从 vi 发展出来的个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器。而 Windows ❤️ Linux 的态度转变相信...
  • vi/vim 的使用基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode) 和 底线命令模式(Last line...比如我们此时按下i,并不会输入个字符,i被当作了个命令。以下是常用的几...
  • vim是linux中必不可少的个工具。早期的Unix都是使用的vi作为系统默认的编辑器。vi与vim有什么区别?可以这样简单理解,vim是vi的升级版。很多linux系统管理员都习惯用vi,那是因为他们接触linux的时候用的就是vi,...
  • Linux vi/vim所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是 vim ...Vim是从 vi 发展出来的个文本编辑器。代码补完、编译及错误跳转等方便编程的功...
  • 1、插入内容在当前光标之前插入,按下 i在当前光标之后插入,按下 a在当前光标的下一行出入,按下 o在当前光标的上一行出入,按下 shift + o2、移动光标位置到下一个word的首字符上:w到前一个word的首字符上:b到下...
  • 命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim 直接启动vimvim ...在vim窗口中打开个新文件:open file在新窗口中打开文件...
  • 命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim 直接启动...在vim窗口中打开个新文件:open file在新窗口中打开文件:spli...
  • Cat哥领读:知道你们用vim用得少,很多命令容易忘记,所以特意收集了波常用命令集,希望对你们有帮助哈!命令历史以: 和 / 开头的命令都有历史纪录,可以首先键入: 或 / 然后按上下箭头来选择某个历史命令。启动 ...
  • 点击上方好好学java,选择星标公众号重磅资讯、干货,第时间送达今日推荐:你还在从...启动vim在命令行窗口中输入以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的文件文件命令打开单个文件v...
  • 本文包括以下内容:四个基本的移动命令如何插入和删除文本退出Vim在你掌握这些命令后,就可以学习更高级的命令了。在你开始之前如果你还没有安装Vim,你应该首先安装Vim.如果你用的是Unix操作系统,你应该...
  • 本文大约 5000 字, 阅读...vim 和 viVim是从 vi 发展出来的个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,...
  • 命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim 直接启动...在vim窗口中打开个新文件:open file在新窗口中打开文件:spli...
  • VIM删除重复

    2015-08-04 20:12:00
    [转贴] VIM删除重复 下面收录了2篇相关文章 1) 转贴自:http://kangzye.blog.163.com/blog/static/36819223201061705729933/ vim 查找相同的两,以及删除重复 要查找相同的两,先将内容排序,...
  • vim删除行

    2019-01-04 10:47:00
    0,vim filename 1,显示行号 :set number 2,跳转到第1000行 1000G (跳转到文件末尾:“G”) 3,删除1-1000行 :1,.d 4,删除所有行 先跳转到文件最后一行:“G” ...1,“ ....2,只删除一行...
  • 来个简单点的(概念简单,都是基本操作),不过执行速度比较慢,适合不太大的文件Step 1: 打开行号set nuStep 2: 移动到文件末尾GStep 3: 如果最后一行就是偶数行,新增一个空行,然后回到最后的偶数行(也就是保证当前...
  • vim中进行奇偶数操作,思路很简单,就是次匹配两,然后删除奇数删除偶数或者两合并。下面我们来看看具体怎么操作吧
  • vim 删除一个单词vim中删除技巧:%s/[Ctrl-v][Enter]//g 删除DOS方式的回车^M:%s= *$== 删除尾空白:%!sort -u 删除重复:%s/^.{-}pdf/new.pdf/ 只是删除第一个pdf:%s/// 删除多行注释:g/^$/d 删除所有空行:g!/^dd/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,005
精华内容 1,602
关键字:

vim删除一行