LINUX.ORG.RU

Подскажите как в vim сделать...

 


2

3

Всем привет!

Все чаще пользуюсь vim, но чувствую, что не хватает некоторых полезных функций, которые есть в GUI редакторах (а парочку я додумаю), а именно:
1. Сдвинуть строку/диапазон строк вправо/влево (ident)
2. Закомментировать/раскомментировать
3. Запомнить позицию (bookmark), переходить по букмаркам вперед/назад
4. Открыть несколько файлов и переключаться между ними
Додумываю:
5. Сохранить файл и скормить его скрипту/компилятору, увидеть результат работы скрипта/компилятора
6. Разделить окно на две части, чтобы вверху показывало один участок файла, внизу - другой.
7. Найти и заменить по регекспу (ну, как sed s/.../.../p )
8. Copy/paste между файлами.

9. И еще: можно чтобы все это (ну, может кроме двух последних) работало без выхода в командный режим, то есть по Ctrl+(что-то)?

Премного благодарен.

★★★★★

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

  • Сдвинуть строку/диапазон строк вправо/влево (ident)

    ><

  • Закомментировать/раскомментировать

    Плагин (NERD Commenter) или сам заменой

  • Запомнить позицию (bookmark), переходить по букмаркам вперед/назад

    '<буква> Вообще вим всегда запоминает в ' последнее перемещение. Так что попробуй попользоваться ".

  • Открыть несколько файлов и переключаться между ними

    Флаг в руки. Переключение :n/:p (замапь)

    Додумываю:

  • Сохранить файл и скормить его скрипту/компилятору, увидеть результат работы скрипта/компилятора

    :make выполняет Makefile и, если компилятор известен сразу скачет на строчку ошибки.

  • Разделить окно на две части, чтобы вверху показывало один участок файла, внизу - другой.

    :vsplit - вертикально, :split - горизонтально.

  • Найти и заменить по регекспу (ну, как sed s/.../.../p )

    Набирай как в sed (ну почти), только сначала укажи диапазон. Например :%s/A/B/

  • Copy/paste между файлами.

    Между открытыми работает. Между разными окнами копирует.

Троль что ли?

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

:help quickref

anonymous
()

Заглянул в профиль ТС. Люди, не кормите этого толстенького олдфага.

anonymous
()

А вообще вот:

http://boombick.org/blog/posts/84

И как минимум половина вопросов отпадёт.

И еще: можно чтобы все это (ну, может кроме двух последних) работало без выхода в командный режим, то есть по Ctrl+(что-то)?

Да. Например, для выполнения некоей команды в режиме вставки по F3. В конфиг:

imap <F3> <esc>:your_command<cr>i

raven_cler ★★
()

После :make можно прыгать по ошибкам через :cn / :cp

arturpub ★★
()

Тебе срочно нужен Derek Wyatt

G12ES
()

9. И еще: можно чтобы все это (ну, может кроме двух последних) работало без выхода в командный режим, то есть по Ctrl+(что-то)?

Emacs же.

anonymous
()

9. И еще: можно чтобы все это (ну, может кроме двух последних) работало без выхода в командный режим, то есть по Ctrl+(что-то)?

бугага! вот так взял, и все испортил.

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

Всем спасибо, особенно ziemin. По наводкам, которые мне дали здесь, нашел тонны информации, нужно изучать, тему пока закрываю.

Так как тема интересна, судя по всем, не только мне, привожу небольшое summary того, что нашел, и куда буду двигаться дальше.

1. Сдвинуть строку/диапазон строк вправо/влево (ident)

< и > . Можно строку, можно выделение. Поскольку сдвигает только один раз, потом точкой повторяем движение

2. Закомментировать/раскомментировать

Не проверял

3. Запомнить позицию (bookmark), переходить по букмаркам вперед/назад

Название букмарков - буквами цифрами a-zA-z0-9 . Букмарки не отображаются (что обидно). Поставить букмарку a - ma , прейти на нее - 'a , посмотреть текущие :marks . Пока не нашел как перейти на следующую/предыдущую.

4. Открыть несколько файлов и переключаться между ними

Не проверял

5. Сохранить файл и скормить его скрипту/компилятору, увидеть результат работы скрипта/компилятора

Скармливается с помощью :make . Чему скармливать (например, g++) :set makeprg=g++\ % . Пока не нашел как сделать так, чтобы перед тем, как скармливать, сохранять файл.

6. Разделить окно на две части, чтобы вверху показывало один участок файла, внизу - другой.

split и vsplit работают отлично. Переключение по двойному Ctrl+w

7. Найти и заменить по регекспу (ну, как sed s/.../.../p )

Не пробовал, но уверен что работает.

8. Copy/paste между файлами.

Не пробовал, но уверен что работает.

9. И еще: можно чтобы все это (ну, может кроме двух последних) работало без выхода в командный режим, то есть по Ctrl+(что-то)?

С помощью map. Например:
map <F5> :Make<CR><C-w><Up>

:help quickref тоже весьма полезен.

Kroz ★★★★★
() автор топика

У меня на мониторе жир выступил...

gwinn ★★★★
()

1. Сдвинуть строку/диапазон строк вправо/влево (ident)

В нормальном или визуальном режиме < и >

2. Закомментировать/раскомментировать

NerdCommenter

3. Запомнить позицию (bookmark), переходить по букмаркам вперед/назад
4. Открыть несколько файлов и переключаться между ними

Додумываю:

5. Сохранить файл и скормить его скрипту/компилятору, увидеть результат работы скрипта/компилятора
6. Разделить окно на две части, чтобы вверху показывало один участок файла, внизу - другой.
7. Найти и заменить по регекспу (ну, как sed s/.../.../p )
8. Copy/paste между файлами.

Млин, ну пройдите уже туториал, все это в нем есть.

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