LINUX.ORG.RU

Vim работа с числами

 


0

1

Нужно скопировать число, потом этим числом заменить другие в двух местах, например. Числа вида -2.35949, 1.288
Проблемы:
Насколько я понял в vim нет понятия «число». 3w/4w не удобно.
При вставке, если выделяешь заменяемое число, то оно само заменяет в буфере копипасты копируемое после вставки

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

Ты приведи пример конкретный, дай портянку, что где на что заменить, определи базовую позицию.

slon
()

3w/4w не удобно.

сW / dW или ct<space> / dt<space>

andreyu ★★★★★
()
Последнее исправление: andreyu (всего исправлений: 2)

Объекта число нет. Если часто с ними работаешь сделай свой, завесь на букву n.

При вставке, если выделяешь заменяемое число, то оно само заменяет в буфере копипасты копируемое после вставки

" now it is possible to paste many times over selected text
xnoremap <expr> p 'pgv"'.v:register.'y'

habamax ★★★
()
Ответ на: комментарий от crutch_master

Есть отличный плагин: https://github.com/tkhren/vim-textobj-numeral — но он не работает хорошо.

А так, можешь прописать в конфиге:

function! Numbers()
    call search('\d\([^0-9\.]\|$\)', 'cW')
    normal v
    call search('\(^\|[^0-9\.]\d\)', 'becW')
endfunction
xnoremap in :<C-u>call Numbers()<CR>
onoremap in :normal vin<CR>
И доработать, чтобы работал с отрицательными числами, а так, у тебя уже сейчас есть работа (vin, cin, yin, din) с целыми и float.

Неплохой список объектов здесь: https://github.com/kana/vim-textobj-user/wiki

slon
()
Последнее исправление: slon (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Ну, в принципе да, хоть это и не всегда удобно.

Я привык именно к командам cf<symbol> ct<symbol>. Делается на автомате. Но допускаю, что есть способы более удобные.

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.