美文网首页
vi/vim删除不剪切

vi/vim删除不剪切

作者: 千若逸 | 来源:发表于2018-06-08 18:32 被阅读636次

vi中的删除基本上都是剪切操作,比如normal模式下的x命令看似是删除一个字符,实则是在删除的同时把删除的内容也放在剪贴板里了。当然这个剪贴板并不是系统剪贴板,实际上是vi中的匿名寄存器。

关于寄存器的介绍可以见这篇文章:使用 Vim 寄存器 | Harttle Land

Vim提供了10类寄存器,可在Vim中通过:help registers查看帮助。

匿名寄存器 ""
编号寄存器 "0 到 "9
小删除寄存器 "-
26个命名寄存器 "a 到 "z
3个只读寄存器 ":, "., "%
Buffer交替文件寄存器 "#
表达式寄存器 "=
选区和拖放寄存器 "*, "+, "~
黑洞寄存器 "_
搜索模式寄存器 "/

其中,对黑洞寄存器的介绍是:黑洞寄存器",所有删除或拷贝到黑洞寄存器的文本将会消失。 这是为了在删除文本的同时不影响任何寄存器的值,"通常用于Vim脚本中。

借助黑没事寄存器,我们就可以实现用x命令删除一个字符而不是剪切,具体命令是:"_x

寄存器操作都是双引号开头,所以上面命令中的双引号就不要忽略了。

每次都要进行这样的寄存器操作当然是很麻烦的,有的是办法让它更快捷——在.vimrc中进行如下设置:

nnoremap x "_x
nnoremap X "_X
nnoremap d "_d
nnoremap dd "_dd
nnoremap D "_D
vnoremap d "_d
vnoremap dd "_dd

nnoremap <leader>x ""x
nnoremap <leader>X ""X
nnoremap <leader>d ""d
nnoremap <leader>dd ""dd
nnoremap <leader>D ""D
vnoremap <leader>d ""d
vnoremap <leader>dd ""dd

那么,做了以上的修改怎么做剪切呢?用Visual模式下的x/X就可以实现啦。注意visual模式下的X是删除整行

通常在vi中复制粘贴的内容与系统剪切板是隔离的。系统剪贴板默认是对应"+寄存器的。如果要使系统剪贴板与vi剪贴板相通,办法在.vimrc中做以下的设置:

set clipboard=unnamed

即将系统剪贴板与匿名寄存器对应起来。

关于寄存器另一个简单的介绍:

寄存器        描述            可复写
0        上一次复制的文本    是    
-        上一次删除的文本    否
.        上一次插入的文本    否
%        当前文件的名字        否
#        交替文件的名字        否
/        上一次查找的字符串    否
:        上一次\":\"命令        否
_        黑洞(black hole)    是
=        表达式            否
*        由鼠标选中的文本    是

参考:

copy paste - How to delete (not cut) in Vim? - Stack Overflow

相关文章

  • vi/vim删除不剪切

    vi中的删除基本上都是剪切操作,比如normal模式下的x命令看似是删除一个字符,实则是在删除的同时把删除的内容也...

  • vim:删除、撤销

    vi-vim (九):删除、撤销、恢复删除、复制删除

  • vi/vim 删除

    x 删除当前光标下的字符dw 删除光标之后的单词剩余部分。d$ 删除光标之后...

  • 2018-11-19

    vim基础操作 一、游标移动 上下左右 跳转 二、插入 三、剪切(删除)复制粘贴 剪切(删除) 复制 粘贴 四、其...

  • 实验六【2021OS】

    实验六:Linux Shell及vi/vim使用 vi/vim简单使用,在命令模式下的保存,删除,查找命令。She...

  • day-7 vim编辑器

    1. vim常用的三种模式 vim普通模式 光标跳转 复制与粘贴 删除、剪切、撤销 vim编辑模式 vim命令模式...

  • FFmpeg实践记录三:Vim基本讲解

    Vim处理模式 Vim常用命令 Vim拷贝、粘贴和删除 Vim光标移动 Vim行内光标移动 Vim查找与替换 Vi...

  • vim编辑器-vim命令大全

    相关文章:vim基本命令 VIM命令大全 本文来源光标控制命令 在 vi 中添加文本 在 vi 中删除文本 修改 ...

  • Vim常用命令-个人备忘

    切换至插入模式 motion命令 删除(vim中 删除不是真正的删除,而是相当于剪切) 复制 (参考链接) 粘贴 ...

  • vim 命令

    启动vim vim的模式 导航命令 插入命令 查找命令 替换命令 移动命令 撤销和重做 删除命令 拷贝和粘贴 剪切...

网友评论

      本文标题:vi/vim删除不剪切

      本文链接:https://www.haomeiwen.com/subject/dgoasftx.html