Как заставить gVim в Windows вести себя так же, как в Linux?

13

Я частый пользователь редактора Vim в Linux, и теперь я хочу использовать его в Windows.

Я скачал Vim для Windows, которая называется gVim. Некоторые функции Vim не работают в gVim 7.4, такие как визуальный блок, rxкоманда и некоторые другие комбинации клавиш.

Я хочу, чтобы тот же / оригинальный Vim из Linux использовался в Windows. Эта версия также доступна для Windows? Или я могу использовать настройки, аналогичные формату Unix?

SibiCoder
источник
2
Попробуйте Vim из tuxproject.de/projects/vim/x64
Muru
6
Кроме того, проверьте свой _vimrcфайл на строку, говорящую что-то вроде source $VIMRUNTIME/mswin.vim. Этот файл позволяет большому количеству настроек быть дружественным к MSWindows (включая много отображений).
Roflo
7
Я использую gvim ежедневно в Windows, и графический интерфейс gvim, и неграфический vim через консоль cmder. Я тоже был разочарован, пока не отключил конфигурационный файл mswin.vim и не сделал несколько других настроек. Я просто удалил файл _vimrc, который был установлен вместе с программой, и скопировал мой Linux .vimrc в Windows, а затем пошел оттуда.
Дэн Джонс
6
Другие комментаторы ссылались на это, но на самом деле никто не сказал этого прямо: визуальный блок прекрасно работает в Windows Vim. Вам просто нужно отключить «дружественные к Windows» привязки клавиш, которые переопределяют ctrl-vкомбинацию клавиш с помощью вставки. Возможно (вероятно?), Что другие проблемы с Windows Vim связаны с той же самой проблемой, хотя вы не упоминаете, что они все из себя представляют, поэтому трудно сказать наверняка.
Богатый
4
OOTB gvim в Windows работает так же, как и в Linux (по умолчанию несколько разных параметров). Вы должны настроить его по-другому.
Антоний

Ответы:

14

Когда мне приходится работать в Windows (что происходит чаще, чем хотелось бы), я использую Cygwin, чтобы получить терминал чуть менее дрянной, чем оригинальная командная строка Windows. Cygwin предоставляет среду, которая пытается быть близкой к консоли Bash со стандартными командами Linux, и, конечно, она далеко не безупречна.

Смотрите страницу проекта Cygwin. Во время установки вы увидите окно, позволяющее выбрать, какие пакеты вы хотите установить. Панель поиска позволяет искать пакеты для установки, среди других полезных вещей (например git, tmux, curl, wgetи т.д.) вы можете ввести vimи выбрать пакеты , такие как vim, vim-common, vim-doc, gvim. Это установит редактор Vim довольно близко к тому, к чему вы привыкли в Linux.

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

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

Также обратите внимание, что мята - хороший способ сделать Cygwin немного менее дрянным.

statox
источник
1
У него есть несколько проблем. Он не показывает символы Юникода должным образом. Некоторые многобайтовые символы скрыты.
SibiCoder
1
Да, именно поэтому я указал, что «Ни один из них не является безупречным»: пока что Cygwin (и его эквиваленты) являются просто обходным путем. Я не эксперт по Windows, но, возможно, новая совместная работа Canonical и Microsoft приведет к некоторым лучшим альтернативам.
statox
Я использую babun в эти дни, хотя я думаю, что основной Cygwin не так свеж, как установка ванили.
Рольф
Начиная с Windows 10 и особенно после добавления в него дополнительных обновлений (curl, openssh, корректное переполнение текста, поддержка 24-битного цвета), теперь прямое приглашение DOS лучше. Рендеринг шрифтов в подсказках DOS / powershell, как правило, лучший из тех, что я видел для терминальных приложений Windows. Кроме того, если вы устанавливаете Git для Windows, он содержит почти все инструменты командной строки linux, которые вам нужны, добавлены C:\Program Files\Git\usr\binили похожи на ваш путь.
icc97
11

Начиная с Windows 10 Anniversary Update, вы можете использовать терминал Bash on Ubuntu для запуска подсистемы Linux, где вы можете использовать apt installвсе, что вы привыкли внутри Ubuntu. Ваша файловая система Windows смонтирована, поэтому вы можете использовать Vim внутри оболочки для редактирования ваших файлов.

Чад Гилберт
источник
2
Не забывайте, что вы по-прежнему получаете доступ к Vim через консоль Windows, которая очень ограничена цветами и подсветкой синтаксиса. Даже с обновлением создателей, которое должно принести 256 цветов на консоль, мне не удалось улучшить подсветку синтаксиса.
icc97
@ icc97 Я не помню точно, что я сделал (я не очень хорошо понимаю цвета и терминалы), но я смог получить цвета, которые отлично смотрятся на vim, и исправить проблему с синим на черном тексте, который появился в bash на выходе терминала Ubuntu. Теперь это немного красочно, но работает отлично. Также с Xming gVim прекрасно работает в Ubuntu на Windows (я только что протестировал интерфейс и попытался сохранить файлы и т.д.).
Formagella
@Formagella Я немного придирка к своим цветам. Я часами пытался заставить соляризованные цвета работать в аналогичном стандарте Linux Vim - я написал кое-что из того, что я сделал в этом выпуске . GVim, однако, имеет довольно совершенную подсветку синтаксиса (и полужирный / курсив) в Windows, поэтому я перестал бороться и просто использовал это. Учитывая, что вы находитесь в приглашении dos, просто подсветка синтаксиса OK - это замечательно, и это очень полезно для сессий SSH, но для редактирования на полный рабочий день я отказался.
icc97
1
Теперь доступна версия Mintty, которая может служить терминалом для Bash в Ubuntu под Windows и реализация Solarized, разработанная для Mintty. Я сделал это только сейчас, и это был относительно безболезненный опыт!
Amndeep7
@Formagella Наконец-то у меня правильно работают цвета в консоли Windows, в Vim это исправлено . Но с Vim 8.1 + 24-битная цветовая схема вы можете получить прекрасные цвета в простой командной строке DOS и командной строке WSL. У меня есть отдельный ответ, который экспериментирует с различными цветовыми схемами консоли Windows и заставляет пару работать.
icc97
4

Как упоминали Рофло и Рич в своих комментариях здесь и здесь , ваша проблема с невозможностью использовать визуальный блок (я не уверен, что это за rxкоманда) состоит в том, что общесистемные $VIM\_vimrcисточники vimrc ( ) $VIMRUNTIME\mswin.vimопределяют определения в стиле Windows, такие как Ctrl+ vдля вставить, Ctrl+ cдля копирования, Ctrl+ xдля вырезания.

Самый простой способ обойти это - создать _vimrcфайлы в вашем домашнем каталоге (обратите внимание, что _vimrcвместо Windows используется версия vim для Windows .vimrc). Как вы можете видеть :h vimrc, vim ищет vimrc в нескольких местах и ​​использует только первое, которое находит, игнорируя остальные. Первый в домашнем каталоге всегда ищется / используется первым.

Минимальные шаги:

  • откройте gvim или vim
  • :e ~/_vimrc
  • :w
удвоить
источник
0

Еще одно довольно небольшое, но не менее важное обновление произошло в Windows 10 для сборки 1803 года. Они добавили 24-битную поддержку консоли (приглашение cmd / powershell). В Vim 8.1 ( https://www.vim.org//download.php/#pc ) они добавили поддержку для termguicolorsкоторых средства вы можете получить полную 24-битную поддержку цвета внутри консоли Vim. Я недавно опубликовал ответ о том, как заставить работать цветовую поддержку .

Но это означает, что есть почти полная поддержка запуска Vim в командной строке DOS - так что вам не нужно устанавливать какую-либо подсистему Linux или любые другие зависимости, кроме самого Vim, чтобы заставить работать чистый Vim. Я нахожу это все еще немного медленным, но приятно видеть прогресс.

введите описание изображения здесь

Вещи, которые работают в консоли Vim (в Windows 10, сборка 1803+):

  • Авиакомпания со шрифтами Powerline
  • 24-битный colortheme(например, vim-solarized8, нежный)
  • Практически любой плагин (например, любой плагин Tim Pope, FZF и Ripgrep)
  • vimdiff
  • Окно консоли привязывается правильно с текстом, текущим правильно - это лучше обрабатывается, чем GVim

Вещи, которые не работают / проблемы:

  • Это медленнее, чем GVim
  • Жирный / курсивный шрифт
  • Символы UTF-8 ограничены - например, некоторые значки авиакомпании по умолчанию не отображаются
icc97
источник