2013-02-27 3 views
9

Я как-то стал сумасшедшим в последние несколько месяцев, используя плагины вроде Vimium для управления хромом. В настоящее время я использую iTerm2, но мне было интересно, есть ли какие-либо терминальные эмуляторы или оболочки, которые используют команды vim или могут быть настроены на использование команд vim.Терминальный эмулятор или оболочка с vim-подобными командами

Меня больше всего интересует выбор текста (визуальный режим) из буфера, извлечение его и вставка его где-нибудь в командной строке ниже. Было бы неплохо, чтобы иметь возможность перемещаться вверх и вниз буфер с J и к и редактировать команду в режиме вставки (в настоящее время должны использовать клавиши со стрелками)

Существует ли такая красивая вещь?

+0

Обычно это не эмулятор терминала, а приложение (например, оболочка), которое вы используете в нем. – Barmar

+3

Например, в bash, 'set + o vi', чтобы получить редактирование в стиле vi вместо emacs-стиля. Другие приложения, использующие readline, должны быть одинаково конфигурируемы. – Barmar

+0

Спасибо, Barmar, я посмотрю, что – nolanpro

ответ

7

Редактирование и выполнения команд через Vim

  1. открытым ВИМ, :r !history (или любой другой), копирование вещей, и выполнение его с помощью :!<type your shell command here>. Используйте последнюю команду :silent !<blah blah>, если vim должен прекратить прослушивать вас сообщениями.

  2. Если вы придерживаетесь обычных настроек emacs (если вы не меняете режимы в любой оболочке, как я описал, вы на самом деле можете использовать ctrl + a, ctrl + e и все подобное!), Вы можете попробовать написать ваша команда, и отредактировать его в Vim через CTRLXCTRLE.
    Однако это зависит от набора редактора с помощью переменной среды EDITOR/VISUAL, которая сообщает linux, какой редактор система должна использовать обычно!

    Здесь вы можете вставлять контент, если у вас есть vim, который скомпилирован с флагами + clipboard или + xterm_clipboard!
    :wq, и вы вернулись в приглашение с внесенными вами изменениями.



Родные привязок в оболочке

Баш: set -o vi

ЗШ: bindkey -v

SwitchIn г в нормальный режим с ESC или CTRL[, вы можете использовать движение как в Vim (ежбчJкл ...) или открыть vim с текущим содержимым, используя v.

Раковины стараются изо всех сил подражать поведению.К сожалению, у вас нет визуального индикатора, который вы вставляете или нет, кроме ввода изменений при вводе.

Чтобы иметь встроенные привязки навсегда, добавьте команды либо ~/.bashrc, либо ~/.zshrc, в зависимости от используемой оболочки. Если вы просто хотите проверить все, внесите это прямо в оболочку, просто не забудьте, что новая настройка не будет придерживаться этого пути.
Это также будет работать на Windows, если у вас установлена ​​оболочка (будь то через git's bash или через cygwin.).

+1

изменен на «set -o vi», я смущен, поскольку многие люди сообщают «set + o vi», что не работает для меня (linux), но это может быть правильный синтаксис на BSD/OSX? ... не стесняйтесь редактировать обратно до «set + o vi», если это правильно на «больше систем» – jcr

3

sjas близок, но отсутствует критический компонент:

set -o vi дает ВЬЕМ привязки

затем нажмите v редактировать текущую строку в Vim

мышь почти всегда более эффективным для выбирая текст, vim или no vim, поэтому мы для этого мыши.

+3

Я очень сильно не согласен с идеей, что мышь более эффективна для выбора текста. Визуальный режим фантастический. И я могу думать о PLENTY о том, что это намного быстрее, чем выделить. Можно было бы выбрать весь файл: 'ggvG' (из любого места в файле). Или выбрать целую функцию C-стиля: '^ v $%' (из любой точки на линии была объявлена ​​функция). И это всего лишь 2 очень быстрых примера с головы. Я бы сказал, что в целом vim ЛУЧШЕ при выборе текста. Мышь не быстро или точно, когда дело доходит до текста, а не по сравнению с vim. – semicolon