Что делать, если слово содержит точки или косые черты (например, /usr/bin/bashили 1222.333)? Похоже, vim интерпретирует /и .как конец слова и не выбирает всю строку.
Александр Цска
87
Я часто обнаруживаю, что хочу заменить одно слово другим, которое я выдернул из другого места. Проблема с другими решениями является то , что если вы пытаетесь изменить слово, то ваша следующая паста будет этим словом , что вы удалили с cw.
Попробуйте следующее:
1 "This first word should overwrite the second"
yiw yank inner word (copy word under cursor, say "first").
... Move the cursor to another word (say "second").
viwp select "second", then replace it with "first".
Он работает нормально, но только если необходимо произвести замену once. Если мне нужно заменить пару second' by первых` (в вашем примере), скопированное слово станет secondпосле первой замены.
ViFI 06
32
ciw
c change
iw inner word
Это удалит слово под курсором (даже если курсор находится где-то посередине слова) и перейдет в режим вставки.
Если вы хотите изменить слово на слово, которое ранее было перетащено, есть другое решение viwp(после того, как вы перетащили первое слово).
ciwудаляет предыдущее слово и переводит вас в режим вставки, где оно было. Но затем вы можете использовать ctrl+r, 0для вставки содержимого регистра 0 (который содержит ранее извлеченное слово).
Так:
yiw
[move to next word]
ciw
ctrl+r
0
Это работает лучше, чем viwpпотому, что после первого использования вы можете повторно выполнить замену .. Он также не переключается в визуальный режим и не выделяется на короткое время.
Не уверен, что вы имеете в виду, что он не меняет режимы, кажется, наоборот, но, возможно, это то, что вы хотели, чтобы оставаться в режиме вставки. Но большим преимуществом является то, что это (в отличие от viwp) можно проделать несколько раз с помощью одного рывка. Благодарность!
Palo
О, ты прав, я думал перейти в визуальный режим, отредактировал. Я не понимал, что это ограничение viwp- даже .не дублирует.
Коннор
3
Это, безусловно, лучшее решение, когда мы уже выдернули заменяющее слово.
mljrg 04
1
Это ответ! Возможность использовать .с этим отличная!
/usr/bin/bash
или1222.333
)? Похоже, vim интерпретирует/
и.
как конец слова и не выбирает всю строку.Я часто обнаруживаю, что хочу заменить одно слово другим, которое я выдернул из другого места. Проблема с другими решениями является то , что если вы пытаетесь изменить слово, то ваша следующая паста будет этим словом , что вы удалили с
cw
.Попробуйте следующее:
Надеюсь, это то, что вы искали.
источник
once
. Если мне нужно заменить паруsecond' by
первых` (в вашем примере), скопированное слово станетsecond
после первой замены.ciw
Это удалит слово под курсором (даже если курсор находится где-то посередине слова) и перейдет в режим вставки.
Также см. Документацию Vim для справки:
источник
Если вы хотите изменить слово на слово, которое ранее было перетащено, есть другое решение
viwp
(после того, как вы перетащили первое слово).ciw
удаляет предыдущее слово и переводит вас в режим вставки, где оно было. Но затем вы можете использоватьctrl+r, 0
для вставки содержимого регистра 0 (который содержит ранее извлеченное слово).Так:
Это работает лучше, чем
viwp
потому, что после первого использования вы можете повторно выполнить замену.
. Он также не переключается в визуальный режим и не выделяется на короткое время.источник
viwp
) можно проделать несколько раз с помощью одного рывка. Благодарность!viwp
- даже.
не дублирует..
с этим отличная!Попробуйте
cw
- как в «поменять слово».Используйте http://linuxmoz.com/vi-commands-cheat-sheet/ или любую другую шпаргалку в качестве справки.
источник