Я немного знаком с текстовыми редакторами * NIX (в настоящее время мигрирующими из nano
в vim
) и, немного посмотрев на Unix & Linux SE, заметил, что vi
в значительном количестве вопросов вместо «vim» используется. Я знаю, что «vim» означает «Vi IMproved», и, учитывая это, я удивляюсь, почему кто-то предпочел бы использовать vi вместо vim. Есть ли у vi существенное преимущество перед vim?
Изменить: я думаю, что мой вопрос неправильно истолкован. Я знаю, что vim, по большей части, значительно мощнее и функциональнее, чем vi. Я хочу знать, есть ли возможные случаи, когда vi имеет преимущество перед vim, например, меньшее использование памяти, распространенность в * nix системах и т. Д.
vi
что вы можете ожидать, что это будет на каждой POSIX-совместимой системе.vi
а неvim
... Ubuntu - один из самых удобных дистрибутивов между прочим ;-)vim
.vi
это просто символическая ссылка, которая в конечном итоге указываетvim
на установку по умолчанию.vi
используя спецификации POSIX дляvi
. Таким образом, у вас есть портативные знания, а также знание расширений Vim.Ответы:
vi
является (также) стандартным редактором POSIX . Существует множество реализаций, иvim
, вероятно, они наиболее популярны, по крайней мере, в Linux.Хотя многие традиционные Unix-совместимые ОС предоставляют
vi
реализации, очень близкие к стандарту, вvim
него добавлено множество дополнительных функций, которые делают его обоюдоострым мечом.Конечно, эти расширения обычно предназначены для облегчения процесса редактирования и предоставляют полезные функции и возможности. Однако, как только вы привыкнете к некоторым из них (не косметическим, таким как окраска синтаксиса, а тем, которые изменяют поведение редактора), вы легко можете забыть, что они специфичны; и использование другой реализации, в том числе основанной на исходном коде BSD, может быть очень неприятным. Обратное тоже верно.
Это очень похоже на проблему, которая возникает со сценариями, использующими не POSIX-башизмы, с которыми сталкиваются более ортодоксальные реализации оболочки, такие как
dash
илиksh
.источник
Ни один vi не имеет существенного преимущества перед vim, а наоборот. Vim имеет больше преимуществ, чем Vi. Вы можете быть заинтересованы в: Почему, о, ПОЧЕМУ, эти #? @! чокнутые используют ви?
Отредактируйте также читать: стоит ли изучать VIM?
источник
Потратив большую часть своей жизни (не считая детства) на комфортное редактирование с Vim, я потратил около месяца, используя только vi. При этом я понял, что зависел от Vim во всех моих потребностях в модификации текста. Перед моей поездкой с vi, когда мне приходилось подставлять какой-либо текст или выполнять аналогичные операции с большой группой файлов, я просто открывал файлы в Vim и запускал
:bufdo
команду, и всякий раз, когда мне приходилось делать отступ или форматировать некоторые файлы, Я бы открыл их в Vim и использовал Vim=
иgw
команды. Я был Vim-зависимым. После того, как я понял, что vi не имеет этих команд, я был вынужден выполнить массовые преобразования текстаsed
и узнал много нового о других программах, таких какawk
иindent
, Хотя в конце концов я вернулся к использованию Vim, знания, полученные с помощью менее функционального редактора, были значительными и оказались чрезвычайно полезными. Помимо изучения инструментов вне текстового редактора, я также лучше познакомился с vi. Всякий раз, когда я работаю над новой системой или сервером, на котором нет Vim, я чувствую себя намного комфортнее, используя vi, чем до месячной экскурсии.Кроме того, в прошлом месяце я установил Linux на дешевый планшет WM8650 и обнаружил заметную разницу в производительности между Vim и vi, поэтому я склонен использовать vi на планшете.
источник
-i
Переключатель на обоих является расширением GNU.) Но вы можете использовать их переносимо с чем-то вродеfor f in *; do printf '%s\n' '%!sed -e '\''some sed command'\' x | ex "$f"; done
Мне было бы трудно жить без VIM, но я терпеть не могу VI . Однако изучение первого, по крайней мере, даст вам представление о том, как бороться с последним, когда это все, что доступно.
Интерфейс vim по умолчанию довольно близок к vi. Если я работаю в системе с vim, первое, что я делаю, это добавляю эти вещи в
~/.vimrc
:Есть куча других вещей, которые я предпочитаю - сейчас и нумерацию и т. Д. - но не берите в голову. «Синтаксис включен» просто включает базовую подсветку синтаксиса (несколько громче:
filetype plugin on
тоже фундаментально); «nocp» отключает совместимость с vi, и именно это начинает отличать vim от ye olde vi (например, он активирует,showmode
что делает весь опыт более человечным, так как теперь у вас есть некоторая подсказка о том, командуете ли вы или ~ INSERT ~ Режим). "wildmenu" просто дает вам горизонтальное меню завершения при выполнении некоторых действий, что также облегчает жизнь.Средства редактирования текста в vim не имеют себе равных - кроме emacs, я никогда не видел и не слышал о подобном программном обеспечении. Их нелегко выучить, но как только вы их узнаете, они намного быстрее, чем меню мыши, и намного более динамичны, чем простые ключевые макроэкономические альтернативы в интерфейсах на основе меню мыши. Для программирования я иногда использую vim вместе с IDE, такой как Eclipse, но большую часть работы я делаю в vim.
Если вы выберете этот путь, лол, посмотрите на плагины автозаполнения и taglist. И остерегайтесь темной стороны.
источник
set mouse=a
тоже всегда добавляю .Преимущество заключается в том, что vi обычно предустановлен в корпоративной UNIX, такой как AIX или Solaris. Кроме того, vim не доступен на установочном носителе.
источник
Я заметил , что я только выбрать
Vi
более ,VIM
когда я скопировать и вставить текстовый документ или файл конфигурации , который я использовалcat
команду. Это потому, что когда я пытаюсьctrl-c
и затемctrl-v
вVIM
открытый документ, это заставляет все строки иметь комментарий перед ними. Поэтому , когда я использую ,Vi
чтобыctrl-v
илиpaste
вVi
открытый документ, он вставляет именно то , что я скопировал с. Кроме этого, я используюVIM
весь день.Наслаждайтесь!
источник
:set paste
Как уже упоминалось в предыдущих ответах, vi поставляется практически со всеми системами UNIX.
Я просто хотел добавить пример. Arch Linux - это один из наиболее популярных и легких дистрибутивов, в котором ни Installer, ни базовый дистрибутив не поставляются с vim по умолчанию, однако оба поставляются с vi.
Это не является преимуществом для vi как такового , потому что вы можете просто установить vim вручную, и вам мало что нужно сделать при установке, требующей текстового редактора, и ничего, где vim не превосходит vi по назначению. Но понимание разницы и того, что vi более распространен и легок, чем vim, дает ему некоторые нишевые преимущества.
Кроме того, просто чтобы быть исчерпывающим, никто еще не упомянул явно, что vi является прямым предшественником vim. Vim был разработан специально для того, чтобы быть всем, чем был vi, и даже больше.
Таким образом, vim превосходит vi, потому что он был задуман .
источник
Единственная причина использовать vi поверх vim - это когда у вас нет другого выбора.
Существует множество причин, по которым vim означает «улучшенный vi»!
Заимствуя из соответствующего поста, я ответил: -
источник
Это выдержка из Вим Коанс :
Мастер Wq и мастер Unix
Старый мастер Unix пришел на мастер Wq. «Я обеспокоен, Wq. Ты учишь путь Вим. ви свят, а Вим нет; его код растягивается, его особенности заполняют память; его двоичные файлы обширны, его поведение несовместимо. Это не путь Unix. Боюсь, что вы вводите в заблуждение своих учеников. Что можно сделать?"
Мастер Wq кивнул. «Вы правы, - сказал он. «Вим сломан. Давайте исправим это. Начнем?"
Старый мастер Unix согласился и открыл оболочку. Он напечатал:
Он начал кодировать. Master Wq некоторое время наблюдал, а затем спросил его: «Какую реализацию vi вы используете? Nvi? Vim? Элвис?»
«Я не знаю», - сказал мастер Unix. «Это не имеет значения.»
Мастер Wq кивнул. Мастер Unix на мгновение ошеломлен и закрыл свой документ неспасенным.
источник