2015-03-04 4 views
6

I режим недавно включен мышь в Vim:включить прокрутку мыши, но не визуальный выбор мыши в vim?

set mouse=a 

Что я люблю прокрутки, но это ужасно для выделения текста. Я использую vim в iTerm2 на Mac. Теперь, когда я выбираю текст, он очень медленно выделяет (выделяется только после завершения перетаскивания выделения), и выделенный текст не копируется автоматически в мой буфер обмена, как это было при использовании iTerm2 для выбора.

Есть ли способ разрешить прокрутку мыши или трекпада в vim без использования мыши для выбора текста в режиме визуального отображения?

Я пробовал:

set mouse=n 

Что мешает текст от получения подсвечивается, когда я пытаюсь выбрать, но она также предотвращает iTerm2 от выделения текста.

Update:

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

Update2:

Благодаря предложениям в комментариях, я был в состоянии получить немного ближе. Мне нужно перекомпилировать Vim так, что +clipboard включено:

brew install vim 

Теперь, если я готов мириться с не видя мою изюминку в процессе как выбрать текст, то я, по крайней мере до сих пор могу получить его в буфере обмена вытягивая его после выбора визуального режима. И если мне действительно нужна лучшая эргономика выбора, я могу удержать alt/option и получить оригинальное поведение по выбору iTerm2.

Мне жаль, что я не могу отменить эти режимы. Например, по умолчанию выполняется поведение, которое выполняется путем удержания alt/option и включения режима визуального режима, когда я хочу его с помощью ключа ... но, ну, это хорошо.

+0

Почему бы вам не использовать '" + y' – romainl

+0

@romainl, как я сделать это? –

+0

Регистр '+' - это системный буфер обмена. Если вы выберете текст, который вы хотите в визуальном режиме, вы можете скопировать его, нажав '' + y'. – EvergreenTree

ответ

1

короткий ответ: я считаю, что это невозможно!

Но, как правило, трудно доказать отсутствие ответа. Поэтому я попытаюсь рассказать об этом и надеюсь, что я ошибаюсь. Итак, вот длинный ответ:

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

Это то, что происходит, когда вы устанавливаете мышь = a: вы изменяете возможности своего терминала, чтобы сообщить, что все события мыши направлены на запущенное приложение, поэтому до vim привязывается или нет действия (например, прокрутка, выбор , вставка и т. д.).

Поэтому, когда вы используете ключ опции, чтобы иметь возможность выбирать, даже если работающее приложение имеет контроль над курсором, это взломать эмулятор терминала (iTerm2 в вашем случае), чтобы получить поведение, которое вы на самом деле ожидаю.

Моей рекомендацией было бы перейти на macvim (brew install macvim), который устанавливает интерфейс gui для vim. И тогда у вас будет выбор, который отлично работает, хотя он просто выходит из терминала.

1

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

Для этого вам просто нужно set clipboard+=autoselect guioptions+=a

См :help clipboard-autoselect подробности.

1

Лучшее, что я нашел, это добавить переключатель для режима мыши.

Добавление следующее .vimrc переключит mouse=a к mouse= и обратно, когда ключ , нажата:

noremap , :if &mouse == "" \| set mouse=a \| else \| set mouse= \| endif<CR><CR> 

 Смежные вопросы

  • Нет связанных вопросов^_^