2008-09-12 1 views
21

Выбор большого количества текста, который распространяется на многие экраны в среде IDE, такой как Eclipse, довольно просто, поскольку вы можете использовать мышь, но что является лучшим способом, например. выбирать и удалять многоэкранные блоки текста или записывать, например. три больших метода в другой файл, а затем удалить их для тестирования в Vim при использовании его через putty/ssh, где вы не можете использовать мышь?В Vim, что является лучшим способом для выбора, удаления или комментирования больших частей многоэкранного текста?

Я могу легко заключить в конец строки или янки-к-концу кода, но если текст распространяется на многие экраны или содержит много пустых строк, Я чувствую, что мои руки связаны с Вимом. Любые решения?

И связанный с этим вопрос: есть ли способ как-то выбрать 40 строк, а затем прокомментировать их (с помощью «#» или «//»), как это обычно бывает в большинстве IDE?

+0

Одно дополнение к @ zigdon-х Ответ: вы можете использовать плагин NERDCommenter для комментария текста, поэтому, если у вас есть визуально выбранный текст и этот плагин установлен, используйте `, cc` для комментирования текста. Больше отображений в `: h NERDComFunctionalitySummary`. – ZyX 2010-06-09 16:59:17

ответ

23

Ну, в первую очередь, вы можете установить vim для работы с мышью, что позволит вам выбирать текст так же, как и в Eclipse.

Вы также можете использовать визуальный выбор - v, по умолчанию. После выбора, вы можете yank, cut и т.д.

Насколько закомментировать блок, я обычно выбирают его VISUAL, а затем сделать

:'<,'>s/^/#/

Замена начало каждой строки с #. (Маркеры '< и '> - это начало и и визуальный выбор.

+1

как вы меняете комментарии? – 2010-09-20 19:56:59

+2

Ну, вы можете «отменить»;) Но если нет, вы можете сделать что-то вроде `: s/^ # //` на выбранных строках. – zigdon 2010-09-20 21:20:08

+4

вы также можете указать диапазон: `: 213,244s/^/# /` для комментирования, а затем отменить операцию для раскола: `: 213,244s/^ # //` done! – brice 2011-05-20 14:07:11

8

Используйте визуальный командный блок-V (или V для целых линий и C - В для прямоугольных блоков). В режиме визуального блока вы можете использовать любые команды движения, включая поиск; Я часто использую}, чтобы перейти к следующей пустой строке. После того, как блок отмечен, вы можете: w его в файл, удалить, yank или что угодно. Если вы выполните команду, а визуальный блок уйдет, повторите выбор того же блока с помощью gv. См .: help visual-change для получения дополнительной информации.

Я думаю, что существуют сценарии, специфичные для языка, которые поставляются с vim, которые делают такие вещи, как комментарии блоков кода, таким образом, который подходит для вашего языка выбора.

2

Использование Сдвиг + V идти в визуальном режиме, то вы можете выбрать строки и удалять/изменять их.

0

v входит в режим визуального блока, где вы можете выбрать как бы со сдвигом в большинстве распространенных редакторов, позже вы можете делать все, что вы обычно можете делать с обычным команды (замещение: '<, '> s/^/#/предварять с комментарием, например), где' <,'> означает выбранный визуальный блок, а не весь текст

4

Нажмите V (верхний регистр V.), а затем нажмите 40j, чтобы выбрать 40 строк, а затем нажмите d, чтобы удалить их. Или, как ответил @zigdon, вы можете прокомментировать их.

+0

Удаляет всего 41 строку (начальная строка и 40 ниже). – 2013-12-10 23:14:17

4

Визуальный режим - это решение вашей основной проблемы. Что касается комментирования разделов кода, для vim.org есть много плагинов, я использую tComment.vim на данный момент.

Существует также аккуратный способ прокомментировать блок без плагина.Допустим, вы работаете в python, а # - символ комментария. Сделайте визуальный выбор блока столбца, в который вы хотите ввести знак хэша, и введите I # ESCAPE. Чтобы войти в режим визуального блока, нажмите C-q на окнах или C-v на linux.

19

Использовать маркеры.

Перейти к началу текстового блока, который вы хотите удалить, и введите

ma 

где-нибудь на этой линии. Нет необходимости в толстой кишке.

Затем перейдите в конец блока и введите следующее:

:'a,.d 

Ввод ma поставил маркер a для символа под курсором.

Команда, которую вы ввели после переезда в нижней части блока текста говорит «из строки, содержащей символ, описанный маркером a (') к текущей строке (.) d далить. "

Такая вещь может быть использована и для других вещей.

:'a,.ya b  - yank from 'a to current line and put in buffer 'b' 
:'a,.ya B  - yank from 'a to current line and append to buffer 'b' 
:'a,.s/^/#/ - from 'a to current line, substitute '#' for line begin 
(i.e. comment out in Perl) 
:'s,.s#^#//# - from 'a to current line, substitute '//' for line begin 
(i.e. comment out in C++) 

N.B.'a (апостроф-а) относится к строке, содержащей символ, обозначенный a. `` a (backtick-a) refers to the character marked by a`.

3

Или вы можете дать этот скрипт попробовать ...

http://www.vim.org/scripts/script.php?script_id=23

+0

NERDCommenter лучше: у него больше функций, последняя версия выпущена 30.03.2009 (21.02.2008 для расширенного комментирования и еще доступна для vim6) и доступна в репозитории Gentoo (но также доступна расширенная комментировка). – ZyX 2010-06-09 17:17:25

16

Для вставки комментариев выбрать начальные символы линий с помощью CTRL - v (покадрово-визуальный, не 'v' характер мудрый-визуальный или 'V' linewise-visual). Затем перейдите в режим вставки с помощью «I», введите свой символ комментария в первую строку (например, «#») и, наконец, выйдите в обычный режим, используя «Esc». Вуаля!

Для удаления комментариев используйте поблочно-визуальные, чтобы выбрать комментарии, и просто удалите их, используя 'x'.

3

Мой блок комментариев техника:

Ctrl + V начать покадрово визуальный режим.

Сделайте свой выбор.

С выбором еще активным, Shift + I. Это помещает вас в режим ввода столбцов.

Введите комментарий символы '#' или '//' или что-то еще.

ESC.

1

Мой обычный метод для комментирования 40 строк было бы поместить курсор на первую строку и введите команду:

:., + 40s/^/#/

(Для здесь через 40 линии вперед, заменить начало строки на хэш, пробел) Кажется немного дольше, чем некоторые другие предложенные методы, но мне нравится делать что-то с клавиатурой, а не с мышью.

0

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

:'b,'ed 

удаляет из маркеров б к маркеру е

закомментировав 40 строк, которые можно сделать в визуальном режиме

V40j:s/^/#/ 

будет закомментировать 40 строк из где и начать Последовательность

0

Вы должны знать о нормальной команде режима [число] CTRL - D. Опционально он изменяет параметр «прокрутки» от 10 до [count], а затем прокручивает вниз столько строк. Нажатие CTRL - D снова прокрутит вниз по тем же линиям снова.

Так попробуйте ввести

V  "visual line selection mode 
30 "optionally set scroll value to 30 
CTRL-D "jump down a screen, repeated as necessary 
y  " yank your selection 

CTRL-U работает точно так же, но прокручивается вверх.

2

Если вы хотите выполнить действие в диапазоне строк и знаете номера строк, вы можете поместить диапазон в командной строке. Например, чтобы удалить строки с 20 по 200 вы можете сделать:

:20,200d 

Для перемещения строки с 20 по 200, где линии 300 можно использовать:

:20,200m300 

И так далее.

2

Для комментирования строки, я хотел бы предложить один из этих плагинов:

EnhancedCommentify

NERD Commenter

Я считаю себя, используя NERD больше в эти дни, но я использовал EnhancedCommentify в течение многих лет.

1

Первый ответ в настоящее время не совсем прав? Чтобы закомментировать выбора нажмите ':' и команды типа : '<, '> s/^/#/г

(' <,'> - будет там автоматически)