6

Довольно просто - как выбрать только что вставленный текст (после его вставки)?

Я редактирую некоторые файлы, которые являются чисто данными, и иногда я "теряюсь" ... поэтому было бы полезно, если бы я мог выделить его или каким-либо другим способом пометить текст, который я только что вставил, чтобы получить визуальное подтверждение, и чтобы знаю, где продолжить.

Это можно сделать?

6 ответов6

3

может быть:

m'gpv''

как в:

m'                " set the 'context' mark
gp                " paste the stuff and place the cursor after the
                  " new text
v                 " visual mode
''                " jump to the 'context' mark and selecting
                    the previous pasted text
2

Отменить, затем Повторить. Не выделяет текст, но говорит, где было изменение. Если вы сделали какое-то другое редактирование после вставки ... всегда есть несколько отмен.

1

вставить v '' (то есть вставить текст, v, одинарную кавычку дважды). кажется выбрать то, что было просто вставлено, в gvim73 на windows.

1

Вы пробовали "gv" в обычном режиме ...
На самом деле он не выделяет последний вставленный текст ...
Он выбирает последний выбранный текст ..
редактировать:

nmap p :call Paster()<CR> 
nmap '; :call LastPasted()<CR>
nmap y :call ClearList()<CR>

let s:linelist=[]
let s:lastidx=len(s:linelist)
if !exists("*Paster")
    function! Paster()
        let x=getpos(".")
        let s:linelist+=[x]
        let s:lastidx=len(s:linelist)
        if s:lastidx>50
            remove(s:linelist,0)
            let s:lastidx-=1
        endif
        "echo s:linelist
        exec "normal! \"0gp"
    endfunction
endif
if !exists("*LastPasted")
    function! LastPasted()
        if s:lastidx>0
            let s:lastidx=s:lastidx-1
        else
            let s:lastidx=len(s:linelist)-1
        endif
        let pos=s:linelist[s:lastidx-1]
        call setpos(".",pos)
    endfunction
endif
if !exists("*ClearList")
    function! ClearList()
        let s:linelist=[getpos(".")]
        let s:lastidx=0
        exec "normal! :y\<CR>"
    endfunction
endif

Это может помочь вам .. Добавьте это в ваш файл vimrc.
Здесь я переназначил 'y'(yank) и 'p'(вставка) таким образом, что положение курсора сохраняется для каждой копии и вставки. Вы можете использовать '; циклически проходить через позиции. Он не выделяет вставленный текст, но переносит вас на позиции, где вы вставили текст. Для каждой новой копии буфер (список) очищается.

Я просто ограничил размер буфера до 50. Вы можете удалить раздел, если он не нужен.

1

Ну, это все еще в вашем буфере обмена, готово для вставки. Если вы заблудились, вы можете сделать еще одну вставку в пустой текстовый файл и посмотреть, где вы были по тому, что было вставлено.

0

Вы можете выбрать только что вставленный текст, используя следующее отображение:

nnoremap <expr> gp '`[' . getregtype()[0] . '`]'

Нашел на ТАК. Вот также некоторые дополнительные данные, как это работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .