记事本像VIM中的“多重编辑”一样?

前端之家收集整理的这篇文章主要介绍了记事本像VIM中的“多重编辑”一样?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从记事本切换到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。

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›,'.')

猜你在找的Bash相关文章