gpt4 book ai didi

vim - Notepad++像VIM中的“多编辑”?

转载 作者:行者123 更新时间:2023-12-03 12:52:52 24 4
gpt4 key购买 nike

我从Notepad ++切换到VIM作为主要文本编辑器。

按住Ctrl并单击文本中的任意位置,Notepad ++可以具有多个光标,因此,如果键入,则文本将出现在多个位置。

vim有可能吗?在可视模式下选择多行后,类似插入操作,但是可能在文本的任何位置都具有光标。

这是我很少使用的功能,也是很容易避免的,我很好奇,因为它是我目前找不到的唯一功能。

最佳答案

没有这种内置功能。

让我建议一个重复命令的函数(例如.重复最后一个
更改命令)。标记和命令都是
指定为字符串参数。以常规方式指定的标记
定义了表达式或scanf格式说明符。例如,za-dx
表示标记zabcdx

function! MarksRepeat(marks, command)
let pos = 0
let len = strlen(a:marks)
let alpha = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
let beta = '1234567899bcdefghijklmnopqrstuvwxyzzBCDEFGHIJKLMNOPQRSTUVWXYZZ'
while pos < len
if a:marks[pos + 1] != '-'
exe 'norm `' . a:marks[pos] . a:command
let pos += 1
elseif a:marks[pos] <= a:marks[pos+2]
let mark = a:marks[pos]
let stop = a:marks[pos+2]
if mark =~ '[0-9a-zA-Z]' && stop =~ '[0-9a-zA-Z]'
while 1
exe 'norm `' . mark . a:command
if mark == stop
break
endif
let mark = tr(mark, alpha, beta)
endwhile
endif
let pos += 3
endif
endwhile
endfunction


在您的情况下,该功能可以按以下方式使用。


使用Vim将所有位置标记为同时插入(一个除外)
标记(通过 m命令)。
实际上将文本插入一个未标记的地方。
运行函数:

:call MarksRepeat(‹marks›, '.')

关于vim - Notepad++像VIM中的“多编辑”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2795711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com