1

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

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

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

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

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

2 ответа2

7

Ник, либо ты учишь 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 таким удивительным.

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

2

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

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

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

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

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

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

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

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

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