天道酬勤,学无止境

Vim - 删除直到最后一次出现的字符(Vim - Delete til last occurrence of character in line)

问题

我想弄清楚如何dtdf字符串中最后一次出现的字符。

例如,假设我有以下行:

foo not.relevant.text.bar

如果我f df. 我希望得到foo relevant.text.bar但我想得到foo bar 。 使用f 3df. 不是一个选项,因为我不知道该字符串中有多少个字符。 此外,我可能想要获取foo .bar ( f 3dt. ),或者如果该行以点结尾,我可能想要获取foo . . 无论有多少,我都想始终找到最后一个。

没有正则表达式这可能吗? 我想我可以使用正则表达式,但我希望有一个我遗漏的简单 vim 命令。 我发现自己经常尝试做这样的事情。

回答1

一种使用正则表达式计算“点”(可能是其他字母)的方法......看看其他人是否有更好的方法..

foo[I]not.relevant.text.bar ( [I] is cursor )

你可以试试:

lmm$T.d`m

或者以这种格式,可能会更好看?

L M M $ d`

这将完成工作。 如果你经常使用,你可以创建一个映射。

编辑

我添加了一个 GIF 动画来显示它的工作原理。 :)

笔记

将光标移动到正确的起点(按f(space) )后,我在正常模式下键入@=以显示我在命令行中按下的键。

在此处输入图片说明

回答2

您可以使用我的 JumpToLastOccurrence 插件。 它提供了,f / ,F / ,t / ,T命令。

回答3

我会用f df...

输入不一定更短,但我发现使用“重复最后一个命令”比预先计算我要删除的单词/句子的数量更容易。

然后你可以调整数量. 您键入以调整要删除的字符串的长度。

回答4

对于您的示例: E T d

foo not.relevant.text.bar

只要光标位于“foo”后面的文本中的任何位置,它就可以工作。

从路径+文件名中删除路径: E T / d B

我用它来剥离除尾随文件名之外的所有路径名。

/some/long/path/filename.ext 中删除路径,留下文件名。

只要:

  • 光标位于粗体字内的任何位置
  • 这个词没有空格

    1. E到最后(因为没有空格 - 如果不是最后一件事也可以)

    2. T /找到最后一个/ (在它之后停止,所以它也会被删除)

    3. d B删除到词首

回答5

在视觉模式下:

$F.d^

$ 到当前行的末尾,F 向后搜索一个句点,d^ 删除直到行的开头。

标签

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 在Vim中选择整个函数定义(Selecting entire function definition in Vim)
    问题 我一直在尝试Vim进行任何文本编辑工作已有近一周的时间。 我想知道选择C函数定义的最快方法。 例如,如果我有这样的功能: void helloworlds( int num ) { int n; for ( n = 0; n < num; ++n ) { printf( "Hello World!\n" ); } } 如何删除包括函数名在内的整个定义? 回答1 在Vim中很常见,有很多方法! 请注意,前两个解决方案取决于没有空行。 如果光标在函数名称所在的行上,请尝试d } 。 它将所有内容删除到下一个块(即您的函数体)。 在函数体内, d a p将删除“段落”。 您可以使用d a }删除花括号。 (如果您喜欢这种语法,我建议您使用Tim Pope的出色的Surround.vim,它会添加更多具有相似感觉的功能)。 您也可以尝试使用正则表达式删除,直到左下角的右大括号为止: d / ^ } Enter ] ]和[ [移至下一个/上一个第一列大括号(相当于上面提到的正则表达式使用/和? 。与d运动结合使用,您将获得相同的效果。在Python模式下,这些运算符被重新定义为确切地表示您要查找的内容:从一个函数移到另一个函数。 如何删除整个块,包括标题 如果你在页眉/名称,或块前行,D A}应该做的伎俩。 如果您位于街区下方,还可以使用Vim搜索的便捷“偏移”功能。 d ? ^ {
  • Vim - Delete til last occurrence of character in line
    I'm trying to figure out how to dt or df the last occurrence of a character in a string. For example, let's say I have the following line: foo not.relevant.text.bar If I f df. I expectedly get foo relevant.text.bar but I would like to get foo bar. Using f 3df. is not an option as I don't know how many of that character will be in the string. Additionally, I may want to get foo .bar (f 3dt.), or if the line ends with a dot, I may want to get foo .. I want to always find the last one regardless of how many there are. Is this possible without a regex? I suppose I could use a regex but I was
  • 《 V I M 教 程 》
    ================================================================================ 欢 迎 阅 读 《 V I M 教 程 》 —— 版本 1.7 = Vim 是一个具有很多命令的功能非常强大的编辑器。限于篇幅,在本教程当中 就不详细介绍了。本教程的设计目标是讲述一些必要的基本命令,而掌握好这 些命令,您就能够很容易地将 Vim 当作一个通用编辑器来使用了。 完成本教程的内容大约需要25-30分钟,取决于您训练的时间。 注意: 每一节的命令操作将会更改本文。推荐您复制本文的一个副本,然后在副本上 进行训练(如果您是通过"vimtutor"来启动教程的,那么本文就已经是副本了)。 切记一点:本教程的设计思路是在使用中进行学习的。也就是说,您需要通过 执行命令来学习它们本身的正确用法。如果您只是阅读而不操作,那么您可能 会很快遗忘这些命令的! 好了,现在请确定您的Shift-Lock(大小写锁定键)还没有按下,然后按键盘上 的字母键 j 足够多次来移动光标,直到第一节的内容能够完全充满屏幕。 第一讲第一节:移动光标 ** 要移动光标,请依照说明分别按下 h、j、k、l 键。 ** ^ k 提示: h 的键位于左边,每次按下就会向左移动。 < h l > l 的键位于右边,每次按下就会向右移动。 j j
  • Linux系统操作(6):Vi/Vim编辑器的使用
    文章目录 Vi/Vim编辑器综述:三种模式:命令行模式(command mode)插入模式(Insert mode)底行模式(last line mode)模式转换: vim的基本操作一、打开文件二、关闭文件三、移动光标(编辑模式)四、翻屏五、删除单个字符六、删除命令: d七、粘贴命令 p八、复制命令 y九、修改:先删除内容,再转换为输入模式十、替换:十一、撤消编辑操作 u十二、重复前一次编辑操作十三、可视化模式十四、查找十五、查找并替换十六、使用vim编辑多个文件十七、分屏显示一个文件十八、分窗口编辑多个文件十九、将当前文件中部分内容另存为另外一个文件二十、将另外一个文件的内容填充在当前文件中二十一、跟shell交互二十二、高级话题二十三、配置文件 Vi/Vim编辑器综述: 本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、 windows。 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及 Linux系统的任何版本
  • linux(10)linux vi/vim
    前言所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是vim编辑器。vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。 什么是vim?Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。 vim的三种模式基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 命令模式:使用 Vim 编辑文件时,默认处于命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。以下是常用的几个命令:i 切换到输入模式,以输入字符。x 删除当前光标所在处的字符。: 切换到底线命令模式,以在最底一行输入命令。 输入模式在输入模式下可以对文件执行写操作,类似在 Windows 的文档中输入内容。进入输入模式的方法是输入 i、a、o 等插入命令,编写完成后按 Esc 键即可返回命令模式。 底线命令模式如果要保存、查找或者替换一些内容等
  • VI编辑器_终端编辑器
    VI编辑器_终端编辑器 1 简介学习vi的目的vi 和 vimVIVIM 2 打开和新建文件打开文件并且定位行VI三种工作模式末行模式命令 3 常用命令学习提示移动1) 上 下 左 右2) 行内移动3) 行数移动4) 屏幕移动 移动(程序)1) 段落移动2) 括号切换 选中文本(可视模式)撤销和恢复撤销(保命指令)删除文本修改文本复制和剪切替换查找查找并替换插入命令高级命令set 命令 1 简介 学习vi的目的 在工作中, 要对服务器上的 文件进行 简单 的修改, 可以使用 ssh 登录到远程服务器上, 并且使用 vi编辑器 进行简单的编辑即可需要修改的文件包括 源代码配置文件 例如: tomcat服务器的配置文件例如: 网卡信息的配置文件 在没有图形界面的环境下, 要编辑文件, vi是最佳选择 每一个使用linux的程序员,都应该或多或少的学习一些vi的常用命令 vi 和 vim VI vi是 visual interface的简称, 是linux中最经典的文本编辑器vi 的核心设计思想 让程序员的手指始终保持在键盘的 核心区域, 就能完成所有的编辑操作vi的特点 只能是编辑 文本内容, 不能对 字体 段落进行排版不支持鼠标操作没有菜单只有命令 vi编辑器在 系统管理 服务器管理 编辑文件时, 其功能永远不是图形界面的编辑器能比拟的 VIM vim 是从vi发展出来的文本编辑器
  • Vim清除最后一个搜索突出显示(Vim clear last search highlighting)
    问题 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么您的答案正确的解释。 答案不够详细的答案可能会被编辑或删除。 在Vim中进行搜索后,我将所有出现的事件突出显示。 我该如何禁用呢? 现在,我再次搜索找不到的乱码。 有没有一种方法可以暂时禁用突出显示,然后在需要时重新启用它? 回答1 要关闭高亮显示,直到下一次搜索: :noh 或完全关闭突出显示: set nohlsearch 或者,要切换它: set hlsearch! nnoremap <F3> :set hlsearch!<CR> 回答2 从VIM文档 要清除上次使用的搜索模式: :let @/ = "" 这不会将模式设置为空字符串,因为它将在任何地方都匹配。 就像启动Vim一样,该模式已真正清除。 回答3 你可以做 :noh 或:nohlsearch暂时禁用搜索突出显示,直到下一次搜索为止。 回答4 我几年前在vim.org上找到了这个答案: 将以下内容添加到您的.vimrc中: "This unsets the "last search pattern" register by hitting return nnoremap <CR> :noh<CR><CR> 因此,在搜索后,只需在命令模式下再次按回车键,突出显示就会消失。 回答5 来自http://twitter.com/jonbho/status
  • 如何在Vim中删除其他所有行?(How to delete every other line in Vim?)
    问题 我想从Vim缓冲区中删除其他所有行,从第二行开始,即第2、4、6等行。例如,如果缓冲区的内容为: aaa bbb ccc ddd eee fff 然后,在删除所需的行之后,它应该变为: aaa ccc eee 可以使用哪些Vim命令来自动执行此操作? 回答1 您可以为此使用宏。 请执行下列操作。 在命令模式下启动。 通过按gg转到文件的开头。 按qq 。 单击向下箭头,然后按dd 。 按q 。 按10000@q PS:要进入命令模式,只需按几次Escape键。 回答2 一种完成任务的优雅(高效)方法是针对+行范围(与.+1相同)调用:delete命令(请参阅:help :d ),以寻址当前行之后的行(请参阅:help {address} ),使用:global命令(请参阅:help :g )在每一行(请参阅:help /^ ): :g/^/+d 回答3 我们可以使用:normal (或:norm )命令来执行j和dd普通模式命令: :%norm jdd 资料来源: zzapper的“最佳Vim技巧”页面。 回答4 :map ^o ddj^o ^o ^代表CTRL。 递归宏每两行删除一行。 选择好您的第一行就可以了。 回答5 从vim邮件存档中: :let i=1 | while i <= line('$') | if (i % 2) | exe i . "delete" |
  • Vim编辑器常用命令
    Vim编辑器常用命令 安装Vim请参考文章: 如何在Windows10上安装Vim 本文参考文章: 1. Vim编辑器 2. Linux Vi/Vim 文章目录 Vim编辑器常用命令Vim简介Vim的6种基本模式1. 普通模式2. 插入模式3. 可视模式4. 选择模式5. 命令行模式6. Ex模式 模式的切换常用命令及说明普通模式的命令插入模式的命令命令行模式的命令 最后 Vim简介 Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。 VIM是自由软件。Vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。使用vim先知道其设计理念是很重要的,有助于记忆,举一反三。vim的设计理念是命令的组合。 Vim的6种基本模式 1. 普通模式 在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。 2. 插入模式 在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一只保持这个模式。 在插入模式中,可以按ESC键回到普通模式。 3. 可视模式 这个模式与普通模式比较相似
  • Linux 编辑器--vim的使用及分屏模式
    目录 vim的使用 命令模式 输入模式 底行模式 命令模式指令集 进入插入模式 光标移动 删除 复制 撤销 替换 更改 跳至指定的行 底行模式命令集 分屏模式 打开方法 shell中打开 vim中创建分屏 切换分屏 关闭分屏 分屏调节 小结 vim是什么 所有的类Unix系统(如Linux)都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在。 但是目前我们使用比较多的是 vim 编辑器。 vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转, 主动的以字体颜色辨别语法的正确性, 等方便编程的功能特别丰富,在程序员中被广泛使用. vim 则可以说是程序开发者的一项很好用的工具。连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。 vim的使用 vim有12种模式. 但我们基本上只用到 3 种, 即命令模式(command mode), 输入模式(Insert mode)和 底行模式(last line mode) 命令模式 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段以及进入 输入模式 , 或者进入底行模式 用户刚刚启动 vim,便进入了命令模式。 此状态下敲击键盘动作会被vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
  • 替换 vim 中第 n 次出现的单词(Substitute the n-th occurrence of a word in vim)
    问题 我看到了其他有关查找单词/模式的第 n 次出现的问题,但我找不到如何在 vim 中实际替换模式的第 n 次出现。 有一种明显的硬编码方法,例如 :s/.*\(word\).*\(word\).*\(word\).*/.*\1.*\2.*newWord.*/g 有没有更好的方法来做到这一点? 回答1 您可以通过使用多个搜索更简单地执行此操作。 :s/pattern/repl/命令中的空模式表示替换最近的搜索结果。 :/word//word//word/ s//newWord/ or :/word//word/ s/word/newWord/ 然后,您可以通过执行@:或什至10@:将命令重复 10 次来多次重复此操作。 或者,如果我以交互方式执行此操作,我会执行以下操作: 3/word :s//newWord/r 这将找到从光标开始的第三次出现的单词,然后执行替换。 回答2 有关信息, s/\%(\(pattern\).\{-}\)\{41}\zs\1/2/ 也可以替换第 42 次出现。 但是,我更喜欢 John Kugelman 给出的解决方案,它更简单——即使它不会将自己限制在当前行中。 回答3 用 REPLACE 替换一行中出现的第N个PATTERN。 :%s/\(\zsPATTERN.\{-}\)\{N}/REPLACE/ 回答4 这回答了您的实际问题,但不是您的意图。
  • 使用Vim,最有效的快捷方式是什么?(What is your most productive shortcut with Vim?)
    问题 已锁定。 该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。 它目前不接受新的答案或互动。 我听说过很多关于Vim的利弊。 看来,使用Vim(作为开发人员)应该比使用任何其他编辑器更快。 我正在使用Vim来做一些基本的事情,而我最多只能将Vim的生产率降低10倍。 在谈论速度时,您只需要注意两件事(您可能不太在意速度,但应该注意): 交替使用左右手是使用键盘的最快方法。 第二种方法是永远不要触摸鼠标,以使其尽可能快。 您动动手,抓住鼠标,将其移动并重新带回键盘需要花费很多时间(而且您经常必须查看键盘以确保将手正确地放回正确的位置) 这是两个例子,说明了为什么我对Vim的工作效率低得多。 复制/剪切和粘贴。 我一直都在做。 在所有当代编辑器中,您用左手按Shift ,然后用右手移动光标以选择文本。 然后按Ctrl + C复制,移动光标,然后按Ctrl + V粘贴。 使用Vim太可怕了: yy复制一行(您几乎从不想要整行!) [number xx]yy将xx行复制到缓冲区中。 但是您永远不会确切知道是否选择了想要的东西。 我经常必须先执行[number xx]dd然后u才能撤消! 另一个例子? 搜索并替换。 在PSPad中: Ctrl + f,然后输入要搜索的内容,然后按Enter 。 在Vim中: / ,然后键入要搜索的内容,然后在每个特殊字符前加上\
  • vim使用技巧(插入,删除,查找,复制,粘贴,剪切)
    编程人员很喜欢的编辑器:vim先搞清楚vim的三种模式:1.命令模式:在Linux终端中输入“vim 文件名”就进入了命令模式,但不能输入文字。2.编辑模式:在命令模式下按i就会进入编辑模式,此时就可以写入程式,按Esc可回到命令模式。3.末行模式:在命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行。下面是三种模式的简单分析图: 下面介绍vim常用技巧:o:在当前行下一行插入,并进入编辑模式O:在当前行上一行插入,并进入编辑模式r:替换光标处的字符R: 替换当前字符及其后的字符,直到按 [ESC]w保存后 gg=G自动对齐语法set nu:设置行号set nonu:取消行号v:进入可视 yy:拷贝当前行yyy:当前行和以下三行p:粘贴vim使用o:在当前行下一行插入,并进入编辑模式O:在当前行上一行插入,并进入编辑模式r:替换光标处的字符w保存后 gg=G自动对齐语法R:替换模式 yy:拷贝当前行yyy:当前行和以下三行p:粘贴nyw:拷贝n个单词u:撤销 d:剪切dd:剪切一行ndd:剪切n行 x: 删除光标所在字符,等同于[Delete]功能键X: 删除光标前字符,相当与[Backspace]dd: 删除光标所在的行db:删除光标所在处一直到单词开头dw:删除光标所在处一直到单词结尾s: 从当前光标位置处开始,以输入的文本替代指定数目的字符S
  • linux学习笔记之--vim 程序编辑器
    Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。 1 图解vim各命令操作 2 命令模式(command mode) 控制屏幕光标的移动,进行文本的删除、复制等文字编辑工作(不使用[Del]键和[Backspace]键)以及进入插入模式,或者回到底行模式。 1) 移动光标 vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母“h”、“j”、“k”、“l”分别控制光标左、下、上、右移一格。 按“ctrl+b”:屏幕往后移动一页。 按“ctrl+f”:屏幕往前移动一页。 按“ctrl+u”:屏幕往后移动半页。 按“ctrl+d”:屏幕往前移动半页。 按数字“0”:移动到文本的开头。 按“1G”或者“gg”:移动到文件首。 按“G”:移动到文件的最后。 按“$”:移动到光标所在行的行尾。 按“^”:移动到光标所在行的行首。 按“w”:光标跳到下个字的开头。 按“e”:光标跳到下个字的字尾。 按“b”:光标回到上个字的开头。 按“nl”或者“n->”:光标移动该行的第n个位置,例如:“5l”表示移动到该行的第5个字符。 2) 删除文字 “x”:每按一次,删除光标所在位置的后面一个字符。 “nx”:例如:“6x”表示删除光标所在位置后面6个字符。 “X”
  • Linux vim编辑器命令界面快捷操作以及gcc常见编译选项
    vim编辑器命令界面快捷操作 删除: x 每按一次,删除光标所在位置字符 nx 例如6x,删除从光标所在位置开始并往后的6个字符 X 每按一次,删除光标所在位置前一个字符 nX 例如20X,删除光标所在位置前20个字符 dd 删除光标所在行 ndd 如5dd,从光标所在行开始删除5行 复制: yw 将光标所在处到字尾的字符复制到缓冲区中 //字指的是几个连续的字母 nyw 如5yw,复制5个字符到缓冲区 yy 复制光标所在行到缓冲区 nyy 如5yy,复制从光标所在行开始的5行到缓冲区 p 将缓冲区的内容粘贴到光标所在 其它操作: Ctrl+b 屏幕往后移动一页 Ctrl+f 屏幕往前移动一页 Ctrl+u 屏幕往后移动半页 Ctrl+d 屏幕往前移动半页 gg 移到文档开头 0 移动到光标所在行的行首 G 移到最后一行的行首 $ 移到光标所在行的行尾 ^ 移到光标所在行的行首 w 光标跳到下个字的开头 e 光标跳到下个字的结尾 b 光标跳到上个字的开头0 nl 如5l,光标移到往后5个位置 //l是字母L的小写替换 替换r : 用于替换光标所在的字符,做法是先将光标移动到需要替换的字符处,按一下r键,然后输入新的字符。注意,全程无需进入插入模式,也不会进入插入模式。 如果先输入[数字]再输入r,最后输入新的字符,说明从当前光标的位置开始,替换【数字】个新字符。 R
  • 使用可视块模式删除 VIM/gvim 中的特定列(Delete a specific Column in VIM/gvim with out using Visual Block mode)
    问题 示例输入文件 +--------------------+---------+--------- | Name | S1 | S2 +--------------------+---------+--------- | A | -4.703 | -2.378 | B | -3283.2 | -3204.5 | C | 8779 | 7302 | D | 22078 | 18018 +--------------------+---------+--------- 需要去掉S1列,即 期望输出 +--------------------+--------- | Name | S2 +--------------------+--------- | A | -2.378 | B | -3205.5 | C | 7302 | D | 18018 +--------------------+--------- 有人能帮忙吗 谢谢 回答1 在命令模式下: :%s/^\([[+|][^+|]\+\)[+|][^+|]\+/\1/ 这使用 vim 的内置 sed 式搜索和替换命令。 这是细分: % - 整个文件 s - 搜索 /^ - 行首 \([[+|][^+|]\+\) - 后跟+或| , 后跟任意数量 ( \+ )不是+或|的任何内容 . 这将获得我们想要保留的第一列,因此通过用\
  • VI/VIM 常用命令
    VI/VIM 常用命令 2015-11-17 19:36 狂师 阅读(236) 评论(0) 编辑 收藏 VI/VIM 常用命令===========整理自鸟哥的私房菜----------- 移动光标命令 | 描述------------------------|------------------------------------------h | 光标向左移动一个字符j | 光标向下移动一个字符k | 光标向上移动一个字符l | 光标向右移动一个字符ctrl+f | 向下移动一页ctrl+b | 向上移动一页ctrl+d | 向下移动半页ctrl+u | 向上移动半页+ | 光标移到下行的行首的非空字符处- | 光标移到上行的行首的非空字符处n- 搜索与替代命令 | 描述------------------------|------------------------------------------/word | 从光标所在处向下搜索word?word | 从光标所在处向上搜索word n | 重复前一个搜索动作N | 反向进行前一个搜索动作:n1,n2s/word1/word2/g | 在第n1,n2行之间搜索word1,并将其替代为word2 :1,$s/word1/word2/g | 在第1,最后一行之间搜索word1,并将其替代为word2:1,$s/word1
  • 【Linux操作系统课堂笔记4】Vi和Vim编辑器及常用命令
    文章目录: 一:介绍 二:Vi和Vim常用的三种模式 1.命令行模式/一般模式/正常模式 2.插入模式/编辑模式/输入模式 3.命令行模式/底线命令模式 三:Vi和Vim模式的相互转换 创建/打开文件 四:Vi和Vim的快捷键 第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等 1.移动光标的方法 2.搜索替换 3.删除、复制与贴上 第二部分:一般模式切换到编辑模式的可用的按钮说明 进入输入或取代的编辑模式 第三部分:一般模式切换到指令行模式的可用的按钮说明 1.指令行的储存、离开等指令 2.vim 环境的变更 五:Vi和Vim快捷键盘一览表 一:介绍 二:Vi和Vim常用的三种模式 插入模式和替换模式【合称为编辑模式】:键盘输入的才是字符 1.命令行模式/一般模式/正常模式 用户刚刚启动 vi/vim,便进入了命令模式,任何键盘输入都是命令 i切换到输入模式,以输入字符x删除当前光标所在处的字符:切换到底线命令模式,以在最底一行输入命令 2.插入模式/编辑模式/输入模式 字符按键以及Shift组合输入字符ENTER回车键,换行BACK SPACE退格键,删除光标前一个字符DEL删除键,删除光标后一个字符方向键在文本中移动光标HOME/END移动光标到行首/行尾Page Up/Page Down上/下翻页Insert切换光标为输入/替换模式,光标将变成竖线
  • 如何匹配直到最后一次出现 bash shell 中的字符(How to match until the last occurrence of a character in bash shell)
    问题 我正在使用curl和cut输出如下所示。 var=$(curl https://avc.com/actuator/info | tr '"' '\n' | grep - | head -n1 | cut -d'-' -f -1, -3) 变量var gets 有两种值(一次一个)。 HIX_MAIN-7ae526629f6939f717165c526dad3b7f0819d85b HIX-R1-1-3b5126629f67892110165c524gbc5d5g1808c9b5 我实际上是想把所有东西都弄到最后一个“-”。 即HIX-MAIN或HIX-R1-1 。 显示的命令可以很好地获取HIX-R1-1 。 但我想这是错误的方式,当我有一些类似的东西只有1做-在变量; 它让我得到整个变量值(例如HIX_MAIN-7ae526629f6939f717165c526dad3b7f0819d85b )。 我如何将最后一个 '-' 的所有内容都放入变量var ? 回答1 这将删除一切从过去的-到最后: sed 's/\(.*\)-.*/\1/' 例如: $ echo HIX_MAIN-7ae52 | sed 's/\(.*\)-.*/\1/' HIX_MAIN $ echo HIX-R1-1-3b5126629f67 | sed 's/\(.*\)-.*/\1/' HIX-R1-1
  • 5-17(linux下的常用软件工具)
    1、编辑器:vimvim是一个命令行编辑器,不能使用鼠标,vim具有12种操作,常用的主要有3种:插入模式:进行文本数据的编辑插入,普通模式:进行文本的常见的操作:复制,剪切,复制,光标移动,返回,文本对齐。底行模式:进行文本的保存、退出以及文本的匹配、查找、替换等vim的基本使用:vim filename 打开一个已存在的文件(打开后默认是普通模式),如果文件不存在,则会创建一个该文件。操作模式的切换(都是围绕着普通模式)普通-》插入:i、a、o 、I、A、O其中i为直接进入插入模式,a为先将光标移动到下一个字符,在进入插入模式,o是将光标移动到下一行(单独开辟一行),再进入插入模式;I为将光标移动到该行行首,再进入插入模式,A是将光标移动到该行行尾,再进人插入模式,O是将光标移到上一行(单独一行),再进入插入模式。普通模式-》底行模式: 按下:(英文状态下的:)即可其中:q表示直接退出,:w表示保存;:wq表示保存后退出;:q!表示强制退出(不保存)其他模式-》普通模式:按下esc即可;其中在普通模式下的操作:光标移动:hjkl为上下左右;b/w为依次移动一个单词,向左向右移动;ctrl+b/f为上下翻页;gg光标跳转到文档行首(第一行);G光标跳转到文档行尾(最后一行)文件操作:yy/nyy:复制光标所在行/及光标下的n-1行。p(小p)为粘贴:光标下方粘贴;P(大P)