如何在vim中选择文本?

bvjxkvbb  于 2022-11-11  发布在  其他
关注(0)|答案(2)|浏览(254)

在大多数文本编辑器中,我可以通过单击并拖动鼠标来选择文本,然后使用Ctrl-C复制该文本,或使用Backspace删除该文本。
但是,由于vim在控制台中运行,所以如果我用鼠标突出显示一些文本,vim命令不会影响我所选择的内容。
vim中选择文本的等效方法是什么?

af7jpaap

af7jpaap1#

vim中,通过进入可视模式来选择文本。这可以通过多种方式来完成。

  • v(小写v)启动常规可视模式,其工作方式类似于使用鼠标选择文本。使用h和l可向左和向右扩展所选内容以包括更多单词,使用j和k可将所选内容扩展到上下行。
  • V(大写的v)开始逐行视觉模式。这会一次选取整行文字。使用j和k来上下展开选取范围。
  • Ctrl+v(小写v)进入块可视模式。这将选择块格式的文本,允许您选择多行中的部分而不包括整行。照常使用hjkl。
  • 正如@FDinoff所建议的,如果您的终端仿真器支持它,您甚至可以通过使用:set mouse=a启用鼠标输入来指定鼠标的可视选择。

一旦你选择了你想要的文本,你可以对它们使用各种各样的命令。一些更有用的命令是:

  • 退出可视模式
  • 删除文本
  • 猛拉(抄)课文
  • 将剪贴板粘贴到文本上,替换它
  • 更改文本,这会删除文本并将光标设置为键入状态
  • 用您键入的下一个字符替换文本
  • yq/p search用于文档中其他位置的文本

您可以在vim中输入:help v,以了解有关视觉模式的详细信息。

jhkqcmku

jhkqcmku2#

突出显示已拖动的文本

首先我想推荐高亮猛拉文字:https://github.com/machakann/vim-highlightedyank(维生素M和新维生素M)
这很有用,因为它将为您提供刚刚复制的内容的视觉提示。

对于新维明:

augroup highlight_yank
    autocmd!
    au TextYankPost * silent! lua vim.highlight.on_yank({higroup="IncSearch", timeout=700})
augroup END

Vim的理念不仅仅是选择、复制等等。
开始花更多的时间阅读关于Vim/Neovim的内容,你就不会再回到任何其他编辑器了。

很高兴认识你亲爱的“文本对象”

  • 了解更多关于他们的信息here
    将整个段落复制到剪贴板:
"+yip

"+ .................... clipboard register
y ..................... copy
ip .................... inner paragraph

将整个文件复制到剪贴板

:%y+

从剪贴板测试一些vim命令

:@+

上面的命令允许你运行函数和vim命令,即使没有将它们粘贴到你的vimrc中,也有一些例外,但一般来说它会工作。

您可以定义自己的文本对象

" vim line text-objects
xnoremap al :<C-u>norm! 0v$<cr>
xnoremap il :<C-u>norm! _vg_<cr>
onoremap al :norm! val<cr>
onoremap il :norm! vil<cr>

因此,您可以使用vildil

有时您不需要选择复制如果您要将第二行复制到文件末尾,您可以执行以下操作:

:2t$

如果要将第4-7行移动到文件的开头,可以执行以下操作:

:4,7m0

从标记A复制到标记B:

ma .................. mark current line as mark a

Jump to a second place in your file and then

mb .................. mark current line as mark b

finally:

:'a,'by+

from mark a to mark b copy to the clipboard

进入高级活力:

  • 使用Vim时,您最高效的捷径是什么?

相关问题