我从记事本切换到VIM作为主文本编辑器。
@H_404_1@记事本可以通过按住ctrl并单击文本中的任何位置来拥有多个光标,因此如果键入,文本将显示在多个位置。
@H_404_1@是否有可能在vim?在视觉模式下选择多行后,可以在文本中的任意位置放置光标。
@H_404_1@这是我很少使用的功能,也很容易避免,我只是好奇,因为它是唯一一个我不能在vim中找到替代品。
没有这样的内置功能。
@H_404_1@让我建议一个重复命令的函数(例如,重复最后一个)
更改命令)在给定标记的位置。标记和命令都是
指定为字符串参数。标记指定的方式范围定期
定义表达式或scanf格式说明符。例如,za-dx
表示标记z,a,b,c,d,x。
标记(通过m命令)。
>实际在一个未标记的地方插入文字。
>运行功能:
更改命令)在给定标记的位置。标记和命令都是
指定为字符串参数。标记指定的方式范围定期
定义表达式或scanf格式说明符。例如,za-dx
表示标记z,a,b,c,d,x。
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@H_404_1@在您的情况下,可以使用以下功能。 @H_404_1@>使用Vim标记所有地方同时插入(除了一个)
标记(通过m命令)。
>实际在一个未标记的地方插入文字。
>运行功能:
:call MarksRepeat(‹marks›,'.')