Поиск определенного слова и изменение его в Sublime Text 2 и Vim

1460
Nik So

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

Я успешно сделал это на E-TextEditor на Windows, где я буду вводить v / что-то / \ rsomethingelse

для желаемого эффекта.

но я обнаружил, что в SubmimeText 2 это не так в режиме комманд. Что происходит в ST2, так это то, что как только я нахожусь в командном режиме, я нажимаю v, что переводит редактор в визуальный режим, а затем, если я ввожу /, он вводит поиск, затем я ввожу слово «что-то», если я нажимаю «/», это будет частью поискового запроса вместо завершения регулярного выражения, хорошо, подумал я, затем я нажимаю return, чтобы увидеть, получит ли экземпляр чего-либо выбрано, но это не так, ни esc, ни любой другой ключ, который я могу придумать. Обратите внимание, что экземпляры «что-то» действительно найдены, но просто не выбраны для дальнейших операций.

Эта функция не существует в SublimeText2 или я что-то упустил?

1
Не могли бы вы привести пример «строки текста» ... это очень широкий термин, учитывая. Rook 13 лет назад 0
@Idigas, например: скажем, если я хочу изменить строку внутри функции печати print ('awfullyWide') для печати ('notReally') Nik So 13 лет назад 0

2 ответа на вопрос

7
romainl

Ник, либо ты учишь Vim, либо ты учишь Sublime Text 2.

Винтажный режим ST2 в лучшем случае является хорошим приближением к основным функциям Vim в рамках Sublime Text.

Например, он не имеет той же командной строки и, следовательно, не предоставляет потрясающую функцию поиска / замены Vim.

Для этого вы должны использовать собственный механизм поиска / замены ST2, который можно получить, набрав Ctrl+ h.

Когда вы печатаете /в «командном режиме», в нижней части окна отображается строка поиска. Так как это собственная панель поиска ST2 (также доступная через Ctrl+ f), она совсем не работает, как панель замены. Гораздо меньше, как в командной строке Vim.

Список сходств винтажного режима / vim в тысячи раз короче, чем список их различий, поэтому я предлагаю вам остановиться и подумать о том, что вы действительно хотите сделать:

a) Узнайте, как использовать Sublime Text 2, который является очень хорошим текстовым редактором

или же

b) Узнайте, как использовать Vim, который является одним из двух лучших текстовых редакторов (насколько я дипломатичен).

Если вы выбираете a) вам вообще не нужно активировать винтажный режим, так как большинство его функций составляют 1/1 соответствия с собственными функциями ST2. Перестаньте смотреть статьи Vim, вместо этого потратьте свое время на изучение того, как работает ST2 и как извлечь из него максимальную пользу.

Если вы выбрали b)первый шаг, вы должны сделать учебник vim доступным через Terminal.app: введите vimtutorи следуйте инструкциям. После того, как вы это сделали vimtutor(возможно, пару раз), вы можете загрузить последнюю сборку MacVim и начать применять полученные знания.

Отказ от этого выбора ни к чему не приведет, потому что большая часть того, что вы найдете о Vim, не будет работать в ST2, а то, что работает, - это небольшая доля того, что делает Vim таким удивительным.

В конце концов, ваш выбор не имеет значения. Главное, чтобы вы сделали это и сосредоточились.

СПАСИБО! Ты найдешь его тупым: есть вещь vimtutor?!?! - Да, я слышал о MacVim из видео Peepcode (на самом деле, по какой-то причине у меня такое чувство, что существует множество разновидностей vim, когда-либо немного отличающихся друг от друга в существовании) --- Вы не можете быть более правым о том, что фокус и текстедитор уходят с дороги. Я думаю, что одна небольшая причина, по которой я использую vim, очень специфична, так это то, что я могу быть независимым от клавиатуры, просто переехав в Mac, я не могу жить с этой клавиатурой, поэтому я подумал, что теперь я могу редактировать с помощью просто a-z0-9 и случайный ctrl. Nik So 13 лет назад 0
На самом деле есть только один аромат Vim. Он может быть скомпилирован с или без огромного количества опций и имеет множество экзотических настроек, но вы все равно получаете Vim. MacVim - это просто Vim, завернутый в приятный родной Mac OS X GUI. Если вы действительно в восторге от Vim, вам следует бросить ST2 и погрузиться в Vim, не тратя время и силы на редактирование. romainl 13 лет назад 0
2
Rook

Ник, хотя я уверен, что твои намерения самые лучшие, я должен сказать, что согласен (по большей части) с @romaini по этому вопросу.

Vim и Sublime Text 2 ( ST2 ), хотя и пытаются быть похожими (ну, один пытается больше, чем другой), являются двумя разными редакторами. Я не очень много использовал ST2, но Vim я использовал совсем немного, и он превосходен в таких вещах, так что его стоит изучить. Да, это может занять некоторое время, но с течением времени, и вы изучаете «новые трюки», вещи становятся «логичными» все больше и больше.

«Сила» Вима проистекает из нескольких вещей; отображения, комбинации оператор / движение и регулярные выражения .

Например, если мы возьмем вашу строку:

print('AwfullyWide') print('NotReally') 

Вы находитесь в начале первой строки и хотите заменить содержимое в апострофах. Набрав, ci'что означает change inside apostrophe( changeявляется оператором, inside 'является движение (текст), на котором будет выполняться оператор, вы получите, print('')после чего вы можете заменить текст внутри.

О том, как Vim работает таким образом, лучше всего подумать, если вы спросите себя: «Что я хочу сделать с каким-то конкретным фрагментом текста?». Тогда это начинает иметь смысл.

Конечно, если вы хотите сделать это за один раз, :%s/AwfullyWide/NotReallyпростая замена приведет к тому же результату. Конечно, регулярные выражения имеют гораздо больший потенциал, чем эта простая замена.

спасибо миллион! Я думал, что-то может быть подозрительным в командном режиме ST2. Вот почему, я действительно взял на себя смелость сказать это на окнах и переключился и подумал vim или смерть. и я купил peepcode и еще одну книгу на нем некоторое время назад, и я смутно помню, что некоторые команды, извлеченные из видео peepcode, отличались от того, что предлагалось, но я думал, что это просто повреждена моя память или что-то в этом роде ... теперь я точно знаю. Ну, это отстой, потому что я вроде как фрагменты SublimeText и прочее. Я думал, что это VIM с привлекательным интерфейсом. Спасибо за такое подробное объяснение! Nik So 13 лет назад 0