【易客吧】_全网激活码总代_激活码商城

您现在的位置是:首页 > 热门资讯 > 正文

热门资讯

vim撤销 (vim撤销上一步操作)

用户投稿2024-03-27热门资讯28

对于Vim这款文本编辑器来说,撤销操作是非常常见且重要的功能之一。在Vim中,撤销操作可以帮助用户纠正错误、回退操作,保证文本编辑的准确性和高效性。下面将对Vim的撤销功能进行详细的分析说明。

在Vim中,撤销操作是通过键盘上的 u 键来实现的。通过按下 u 键,用户可以撤销最近的一次编辑操作,即将文本恢复到上一个状态。这个撤销操作是逐步的,也就是说,每次按下 u 键,Vim都会撤销上一个编辑操作。Vim还支持多次撤销,用户可以按下 u 键多次来撤销多个操作。

除了单个字符的撤销,Vim还提供了更复杂的撤销功能。比如,可以使用 u 键来撤销一系列的编辑操作,甚至是撤销整个文本文件的编辑。Vim还支持宏操作的撤销,用户可以通过撤销宏来回退一系列复杂的编辑操作。

值得一提的是,Vim还提供了撤销树(undo tree)功能,通过这个功能,用户可以更清晰地看到整个编辑过程中的撤销操作历史。用户可以通过撤销树来选择性地撤销某个操作,而不是一味地按下 u 键来逐步撤销。

Vim的撤销功能还支持撤销与重做的组合操作。在Vim中,用户不仅可以通过 u 键来撤销操作,还可以通过 Ctrl + r 键来重做操作。这种组合操作可以帮助用户更灵活地控制文本编辑的流程,提高编辑效率。

Vim的撤销功能是非常强大和灵活的。通过简单的按下 u 键或者结合其他快捷键操作,用户可以方便地撤销任何编辑操作,保证文本编辑的准确性和高效性。


vim中有撤销上一次的命令行操作的命令吗?

vim撤销 (vim撤销上一步操作) 第1张

没有,你这个set list是属于配置方面的,就像你使用一些编辑器,有勾选是否显示空白字符的选项一样。 如果你用的是一些操作文本的命令的话可以通过u来撤销修改。

vim中如何持续撤销?

u和CTRL-R一个撤销,一个重做,比较常用打开vim,执行:hundo和:hudf可以看一下帮助文档:hundou撤销[count]次更改。 {Vi:仅有一级}*:u**:un**:undo*:u[ndo]撤销一次更改。 {Vi:仅有一级}*E830*:u[ndo]{N}转到改变号{N}之后。 {N}的含义参见|undo-branches|。 {Vi无此功能}*CTRL-R*CTRL-R重做[count]次被撤销的更改。 {Vi:刷新屏幕}*:red**:redo**redo*:red[o]重做一个被撤销的更改。 {Vi:没有redo}*U*U撤销最近对特定行所作的一系列更改。 {Vi:仅当这些修改不超出该行的范围}:hudfundofileudf布尔型(缺省关闭)局部于缓冲区{Vi无此功能}{仅当编译时加入|+persistent_undo|特性才有效}打开时,Vim在把缓冲区写入文件时,自动保存撤销历史到撤销文件。 读入文件到缓冲区时,自动恢复撤销历史。 撤销文件写入的目录由undodir指定。 关于此功能,可详见|undo-persistence|。 如果undoreload导致重载前为了可撤销而保存缓冲区,不读入撤销文件。 警告:这是很新的功能,小心使用!

关于linux vi命令

vim命令总结1.删除字符要删除一个字符,只需要将光标移到该字符上按下x。 2.删除一行删除一整行内容使用dd命令。 删除后下面的行会移上来填补空缺。 3.删除换行符在Vim中你可以把两行合并为一行,也就是说两行之间的换行符被删除了:命令是J。 4.撤销如果你误删了过多的内容。 显然你可以再输入一遍,但是命令u 更简便,它可以撤消上一次的操作。 5.重做如果你撤消了多次,你还可以用CTRL-R(重做)来反转撤消的动作。 换句话说,它是对撤消的撤消。 撤消命令还有另一种形式,U命令,它一次撤消对一行的全部操作。 第二次使用该命令则会撤消前一个U的操作。 用u和CTRL-R你可以找回任何一个操作状态。 6.追加i命令可以在当前光标之前插入文本。 a命令可以在当前光标之后插入文本。 o命令可以在当前行的下面另起一行,并使当前模式转为Insert模式。 O命令(注意是大写的字母O)将在当前行的上面另起一行。 7.使用命令计数假设你要向上移动9行。 这可以用kkkkkkkkk或9k来完成。 事实上,很多命令都可以接受一个数字作为重复执行同一命令的次数。 比如刚才的例子,要在行尾追加三个感叹号,当时用的命令是a!!!。 另一个办法是用3a!命令。 3说明该命令将被重复执行3次。 同样,删除3个字符可以用3x。 指定的数字要紧挨在它所要修饰的命令前面。 8.退出要退出Vim,用命令ZZ。 该命令保存当前文件并退出Vim。 9.放弃编辑丢弃所有的修改并退出,用命令:q!。 用:e!命令放弃所有修改并重新载入该文件的原始内容。 10.以Word为单位的移动使用w命令可以将光标向前移动一个word的首字符上;比如3w将光标向前移动3个words。 b命令则将光标向后移动到前一个word的首字符上。 e命令会将光标移动到下一个word的最后一个字符。 命令ge,它将光标移动到前一个word的最后一个字符上。 、11.移动到行首或行尾$命令将光标移动到当前行行尾。 如果你的键盘上有一个键,它的作用也一样。 ^命令将光标移动到当前行的第一个非空白字符上。 0命令则总是把光标移动到当前行的第一个字符上。 键也是如此。 $命令还可接受一个计数,如1$会将光标移动到当前行行尾,2$则会移动到下一行的行尾,如此类推。 0命令却不能接受类似这样的计数,命令^前加上一个计数也没有任何效果。 12.移动到指定字符上命令fx在当前行上查找下一个字符x(向右方向),可以带一个命令计数F命令向左方向搜索。 tx命令形同fx命令,只不过它不是把光标停留在被搜索字符上,而是在它之前的一个字符上。 提示:t意为To。 该命令的反方向版是Tx。 这4个命令都可以用;来重复。 以,也是重复同样的命令,但是方向与原命令的方向相反。 13.以匹配一个括号为目的移动用命令%跳转到与当前光标下的括号相匹配的那一个括号上去。 如果当前光标在(上,它就向前跳转到与它匹配的)上,如果当前在)上,它就向后自动跳转到匹配的(上去.14.移动到指定行用G命令指定一个命令计数,这个命令就会把光标定位到由命令计数指定的行上。 比如33G就会把光标置于第33行上。 没有指定命令计数作为参数的话, G会把光标定位到最后一行上。 gg命令是跳转到第一行的快捷的方法。 另一个移动到某行的方法是在命令%之前指定一个命令计数比如50%将会把光标定位在文件的中间. 90%跳到接近文件尾的地方。 命令H,M,L,分别将光标跳转到第一行,中间行,结尾行部分。 15.告诉你当前的位置使用CTRL-G命令。 set number在每行的前面显示一个行号。 相反关闭行号用命令:set nonumber。 :set ruler在Vim窗口的右下角显示当前光标位置。 16.滚屏CTRL-U显示文本的窗口向上滚动了半屏。 CTRL-D命令将窗口向下移动半屏。 一次滚动一行可以使用CTRL-E(向上滚动)和CTRL-Y(向下滚动)。 要向前滚动一整屏使用命令CTRL-F。 另外CTRL-B是它的反向版。 zz命令会把当前行置为屏幕正中央,zt命令会把当前行置于屏幕顶端,zb则把当前行置于屏幕底端.17.简单搜索/string命令可用于搜索一个字符串。 要查找上次查找的字符串的下一个位置,使用n命令。 如果你知道你要找的确切位置是目标字符串的第几次出现,还可以在n之前放置一个命令计数。 3n会去查找目标字符串的第3次出现。 ?命令与/的工作相同,只是搜索方向相反.N命令会重复前一次查找,但是与最初用/或?指定的搜索方向相反。 如果查找内容忽略大小写,则用命令set ignorecase, 返回精确匹配用命令set noignorecase 。 18.在文本中查找下一个word把光标定位于这个word上然后按下*键。 Vim将会取当前光标所在的word并将它作用目标字符串进行搜索。 #命令是*的反向版。 还可以在这两个命令前加一个命令计数:3*查找当前光标下的word的第三次出现。 19.查找整个word如果你用/the来查找Vim也会匹配到there。 要查找作为独立单词的the使用如下命令:/the\>。 \>是一个特殊的记法,它只匹配一个word的结束处。 近似地,\<匹配到一个word的开始处。 这样查找作为一个word的the就可以用:/\。 20.高亮显示搜索结果开启这一功能用:set hlsearch,关闭这一功能::set nohlsearch。 如果只是想去掉当前的高亮显示,可以使用下面的命令::nohlsearch(可以简写为noh)。 21.匹配一行的开头与结尾 ^ 字符匹配一行的开头。 $字符匹配一行的末尾。 所以/was$只匹配位于一行末尾的单词was,所以/^was只匹配位于一行开始的单词was。 22.匹配任何的单字符.这个字符可以匹配到任何字符。 比如c.m可以匹配任何前一个字符是c,后一个字符是m的情况,不管中间的字符是什么。 23.匹配特殊字符放一个反斜杠在特殊字符前面。 如果你查找ter。 ,用命令/ter\。 24.使用标记当你用G命令从一个地方跳转到另一个地方时,Vim会记得你起跳的位置。 这个位置在Vim中是一个标记。 使用命令 `` 可以使你跳回到刚才的出发点。 ``命令可以在两点之间来回跳转。 CTRL-O命令是跳转到你更早些时间停置光标的位置(提示:O意为older). CTRL-I则是跳回到后来停置光标的更新的位置(提示:I在键盘上位于O前面)。 注:使用CTRL-I 与按下键一样。 25.具名标记 命令ma将当前光标下的位置名之为标记a。 从a到z一共可以使用26个自定义的标记。 要跳转到一个你定义过的标记,使用命令 `marks marks就是定义的标记的名字。 命令 a 使你跳转到a所在行的行首, `a 会精确定位a所在的位置。 命令::marks用来查看标记的列表。 命令delm!删除所有标记。 26.操作符命令和位移dw命令可以删除一个word,d4w命令是删除4个word,依此类推。 类似有d2e、d$。 此类命令有一个固定的模式:操作符命令+位移命令。 首先键入一个操作符命令。 比如d是一个删除操作符。 接下来是一个位移命。 比如w。 这样任何移动光标命令所及之处,都是命令的作用范围。 27.改变文本操作符命令是c,改变命令。 它的行为与d命令类似,不过在命令执行后会进入Insert模式。 比如cw改变一个word。 或者,更准确地说,它删除一个word并让你置身于Insert模式。 cc命令可以改变整行。 不过仍保持原来的缩进。 c$改变当前光标到行尾的内容。 快捷命令:x 代表dl(删除当前光标下的字符)X 代表dh(删除当前光标左边的字符)D 代表d$(删除到行尾的内容)C 代表c$(修改到行尾的内容)s 代表cl(修改一个字符)S 代表cc(修改一整行)命令3dw和d3w都是删除3个word。 第一个命令3dw可以看作是删除一个word的操作执行3次;第二个命令d3w是一次删除3个word。 这是其中不明显的差异。 事实上你可以在两处都放上命令记数,比如,3d2w是删除两个word,重复执行3次,总共是6个word。 28.替换单个字符r命令不是一个操作符命令。 它等待你键入下一个字符用以替换当前光标下的那个字符。 r命令前辍以一个命令记数是将多个字符都替换为即将输入的那个字符。 要把一个字符替换为一个换行符使用r。 它会删除一个字符并插入一个换行符。 在此处使用命令记数只会删除指定个数的字符:4r将把4个字符替换为一个换行符。 29.重复改动.命令会重复上一次做出的改动。 .命令会重复你做出的所有修改,除了u命令CTRL-R和以冒号开头的命令。 .需要在Normal模式下执行,它重复的是命令,而不是被改动的内容,模式按v可以进入Visual模式。 移动光标以覆盖你想操纵的文本范围。 同时被选中的文本会以高亮显示。 最后键入操作符命令。 31.移动文本以d或x这样的命令删除文本时,被删除的内容还是被保存了起来。 你还可以用p命令把它取回来。 P命令是把被去回的内容放在光标之前,p则是放在光标之后。 对于以dd删除的整行内容,P会把它置于当前行的上一行。 p则是至于当前行的后一行。 也可以对命令p和P命令使用命令记数。 它的效果是同样的内容被取回指定的次数。 这样一来dd之后的3p就可以把被删除行的3 份副本放到当前位置。 命令xp将光标所在的字符与后一个字符交换。 32.复制文本(VIM编辑器内复制)y操作符命令会把文本复制到一个寄存器3中。 然后可以用p命令把它取回。 因为y是一个操作符命令,所以你可以用yw来复制一个word. 同样可以使用命令记数。 如下例中用y2w命令复制两个word,yy命令复制一整行,Y也是复制整行的内容,复制当前光标至行尾的命令是y$。 33.文本对象diw 删除当前光标所在的word(不包括空白字符) daw 删除当前光标所在的word(包括空白字符)34.快捷命令x 删除当前光标下的字符(dl的快捷命令)X 删除当前光标之前的字符(dh的快捷命令)D 删除自当前光标至行尾的内容(d$的快捷命令)dw 删除自当前光标至下一个word的开头db 删除自当前光标至前一个word的开始diw 删除当前光标所在的word(不包括空白字符)daw 删除当前光标所在的word(包括空白字符)dG 删除当前行至文件尾的内容dgg 删除当前行至文件头的内容如果你用c命令代替d这些命令就都变成更改命令。 使用y就是yank命令,如此类推。 35.编辑另一个文件用命令:edit ,也可简写为:e 。 36.文件列表可以在启动Vim时就指定要编辑多个文件,用命令vim one.c two.c three.c。 Vim将在启动后只显示第一个文件,完成该文件的编辑后,可以用令::next或:n要保存工作成果并继续下一个文件的编辑,命令::wnext或:wn可以合并这一过程。 37.显示当前正在编辑的文件用命令:args。 38.移动到另一个文件用命令:previous :prev回到上一个文件,合并保存步骤则是:wprevious :wprev。 要移到最后一个文件:last,到第一个:first.不过没有:wlast或者:wfirst这样的命令。 可以在:next和:previous命令前面使用一个命令计数。 39.编辑另一个文件列表不用重新启动Vim,就可以重新定义一个文件列表。 命令:args five.c six.c seven.h定义了要编辑的三个文件。 40.自动存盘命令:set autowrite,set aw。 自动把内容写回文件: 如果文件被修改过,在每个:next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL-^命令时进行。 命令:set autowriteall,set awa。 和 autowrite 类似,但也适用于:edit、:enew、:quit、:qall、:exit、:xit、:recover 和关闭 Vim 窗口。 置位本选项也意味着 Vim 的行为就像打开 autowrite 一样。 41.切换到另一文件要在两个文件间快速切换,使用CTRL-^。 42.文件标记以大写字母命名的标记。 它们是全局标记,它们可以用在任何文件中。 比如,正在编辑,用命令50%mF在文件的中间设置一个名为F的标记。 然后在文件中,用命令GnB在最后一行设置名为B的标记。 在可以用F命令跳转到文件的半中间。 或者编辑另一个文件,B命令会再把你带回文件的最后一行。 要知道某个标记所代表的位置是什么,可以将该标记的名字作为marks命令的参数:marks M或者连续跟上几个参数:marks MJK可以用CTRL-O和CTRL-I可以跳转到较早的位置和靠后的某位置。 43.查看文件仅是查看文件,不向文件写入内容,可以用只读形式编辑文件。 用命令:vim -R file。 如果是想强制性地避免对文件进行修改,可以用命令:vim -M file。 44.更改文件名将现有文件存成新的文件,用命令:sav(eas) move.c。 如果想改变当前正在编辑的文件名,但不想保存该文件,就可以用命令::f(ile) move.c。 45.分割一个窗口打开一个新窗口最简单的办法就是使用命令::split。 CTRL-W 命令可以切换当前活动窗口。 46.关闭窗口用命令:close.可以关闭当前窗口。 实际上,任何退出文件编辑的命令:quit和ZZ都会关闭窗口,但是用:close可以阻止你关闭最后一个Vim,以免以意外地整个关闭了Vim。 47.关闭除当前窗口外的所有其他窗口用命令::only,关闭除当前窗口外的所有其它窗口。 如果这些窗口中有被修改过的,你会得到一个错误信息,同时那个窗口会被留下来。 48.为另一个文件分隔出一个窗口命令:split two.c可以打开第二个窗口同时在新打开的窗口中开始编辑作为参数的文件。 如果要打开一个新窗口并开始编辑一个空的缓冲区,使用命令::new。 49.垂直分割用命令:vsplit或::vsplit two.c。 同样有一个对应的:vnew命令,用于垂直分隔窗口并在其中打开一个新的空缓冲区。 50.切换窗口CTRL-W h 到左边的窗口CTRL-W j 到下面的窗口CTRL-W k 到上面的窗口CTRL-W l 到右边的窗口CTRL-W t 到顶部窗口CTRL-W b 到底部窗口51.针对所有窗口操作的命令:qall放弃所有操作并退出,:wall保存所有,:wqall保存所有并退出。 52.为每一个文件打开一个窗口使用-o选项可以让Vim为每一个文件打开一个窗口:vim -o 。 53.使用vimdiff查看不同vimdiff main.c~ main.c,另一种进入diff模式的办法可以在Vim运行中操作。 编辑文件main.c,然后打开另一个分隔窗口显示其不同::edit main.c:vertical diffpatch 。 54.页签 命令:tabe(dit) thatfile在一个窗口中打开thatfile,该窗口占据着整个的Vim显示区域。 命令:tab split/new结果是新建了一个拥有一个窗口的页签。 以用gt命令在不同的页签间切换。

若对本页面资源感兴趣,请点击下方或右方图片,注册登录后

搜索本页相关的【资源名】【软件名】【功能词】或有关的关键词,即可找到您想要的资源

如有其他疑问,请咨询右下角【在线客服】,谢谢支持!

vim撤销 (vim撤销上一步操作) 第2张

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
你上次访问网站的时间为:24-05-20,17:05:58 你第50访问网站的时间为:24-05-20 17:06:00