Comments 199
Если поверх прикрутить пользовательский интерфейс, функционал потеряет смысл.
Практически вся «шаманская клавиатурная магия» укладывается в паттерн «сколько раз сделать — что сделать — с чем сделать». Честно, не представляю как UI может решить проблему огромного числа комбинаций, которые требуются по мере написания кода. И тем более, как он может быть полезен при необходимости работать удаленно.
Линтеры, подсветка синтаксиса, быстрая навигация по тексту, дерево папок проекта и прочее.
Где этого нынче нет? Кроме того, в IDE это сильно лучше, чем в виме. Вы в своём комментарии почему-то ни разу не упомянули модальный интерфейс. А это как раз киллер фича вима.
Где этого нынче нет?
В nano. О нем речь в комментарии надо мной.
Кроме того, в IDE это сильно лучше, чем в виме
Лучше чем?
Потому что я использую tmux и мне не нужен модальный интерфейс вима.
Создаётся впечатление, что tmux заменяет вам модальный интерфейс вима. Наверное вы хотели сказать, что вы используете tmux и отдельно, что вам не нужен модальный интерфейс вима, да?
Про tmux вы, наверное сказали к тому, что IDE в консоль почему-то не завезли? Тут поспорить сложно и вим, конечно, выручает.
Но вот по поводу того, что вам не нужен модальный интерфейс возникает вопрос. Как вы вообще используете vim? Постоянно в Insert mode? Но, судя по предыдущему комментарию у вас за плечами годы работы, неужели все они прошли в режиме вставки? Напишите, пожалуйста, подробнее, как вы работаете в виме.
В nano. О нем речь в комментарии надо мной.
Действительно. Тут тоже не поспоришь, конечно :).
Чем подсветка синтаксиса и всё такое в IDE лучше, чем в виме?
Во-первых там банально больше разработчиков трудится, во-вторых акцент именно на работу с кодом, сборку и всё такое. Дальше, конечно, надо индивидуально сравнивать с каждой IDE. Например, сравнить возвможности по рефакторингу в виме с плагинами и в Intellij IDEA.
Tmux для сплита экрана и для отдельных табов. В сплите можно открыть вим, может оставить консоль. Вообще, прелесть tmux — это возможность на удаленном сервере оставить сессию и подключиться к ней с другой машины, сохранив при этом всю структуру открытых окон.
А сравнение с ide всегда выходит однобоким, потому что говорящий либо работает только в ide и никогда не пробовал настроить среду vim под себя, либо, наоборот, всю жизнь просидел на виме/нано/емакс/тп, соответственно, не может рассуждать об ide.
Когда пробовал vue.js, возникла необходимость syntax highligh для .vue файлов. На канале slack пользователи разных ide регулярно на эту тему вайнили, потому что поддержки со стороны ide не было, приходилось ставить подсветку аналогичную .html, что было слегка не то. В то же время, плагин для вима был доступен с самого начала. Выглядит, наверное, как пример, высосанный из пальца, но ничего лучше у меня нет по причине отсутствия опыта работы в ide.
А если вы работаете с кириллицей, вычтите 2 пальца на регулярное, через слово, переключение раскладки, которое превратит работу с vim в ад.
Переключение раскладки через слово, конечно, превращает жизнь в ад, но зачем, работая с кириллицей в виме, регулярно переключать раскладку?
Когда вы говорите "вводить команды", вы имеете в виду — работать в Normal Mode? Если так, то говоришь виму, чтобы ввод текста осуществлялся в кириллице, а в Normal Mode клавиши воспринимались как английские.
Вот это написать в vimrc
set keymap=russian-jcukenwin
Теперь, когда язык ОС — английский, можно в Insert Mode нажать Control+^ и язык ввода станет русским. Ещё раз — Control+^ и язык ввода английский. На язык ввода в ОС это не влияет.
Я вместо этого просто создал себе дополнение translit3: встроенный режим полон проблем вроде не работающих при определённых условиях сочетаний клавиш, некоторые из них даже иногда исправляют. И это в дополнение к необходимости уметь печатать вслепую на двух раскладках, а также недоступности ряда ASCII символов из‐за разницы в количестве букв. (Конечно, использование данного дополнения из‐за «отсутствия необходимости уметь печатать вслепую на двух раскладках» означает, что вам придётся либо печатать весь русский текст в Vim, либо печатать его не вслепую, но меня это не особо смущает.)
Я не совсем понял. Дополнение ставит раскладку в виме наподобие фонетической? Или делает ещё что-то?
Скорее метод ввода, чем раскладка. Например, первое предложение в этом сообщении я писал как «Bolxshe metod vvoda, chem raskladka.» (потом переправил «Больше» на «Скорее»): как видите, ряд букв требует более одного символа для ввода. Если вы знакомы с vim-latex-suite и/или дополнением IMAP (первое использует второе), а также с Web‐сайтами, в которых можно вводить транслитом, то тут по реализации нечто среднее.
По идее, дополнение должно быть можно трансформировать в реальный метод ввода (вроде тех, что используются для ввода иероглифов), но тут опять возникнет проблема при переключении в нормальный режим…
Ctrl+6 или Ctrl+^ навешан на что-то пишущее что «соседний файл не существует».
Если выполнить :tab ball то появляются закладки, и комбинация в текущей вкладке открывает зачем-то другую. И как-то глючно, логики я не понял, переключаюсь обычно по gt
2) Мне кажется неудобным запоминать ещё одну раскладку и ещё один переключатель внутри vim. Зачем столько лишних сущностей? Я пользуюсь системной переключалкой, у меня это CapsLock, и другими не хотел бы. И что это изменит? Две кнопки вместо одной жать для переключения? Вы не написали, что это избавит от необходимости смены языка на английский перед вводом команд.
- Переключение в режиме редактирования, не в нормальном режиме.
- langmap это что‐то вроде «по нажатию
<C-^>
создать привязки «a на ф, b на и, …». Т.к. привязки внутри Vim, то, разумеется, он может их не использовать для ввода команд. В этом главное отличие от случая с системной раскладкой: ни про какие внешние раскладки Vim не знает, получать коды клавиш «как есть» не умеет и, соответственно, не может переключить на раскладку us при переходе в нормальный режим.
Есть ли другие методы?
Можно взять Neovim и написать для него GUI на чём‐то вроде sdl — что‐то, что позволяет получить сканкод клавиши, а лучше «значение клавиши в раскладке по‐умолчанию». Вроде такая функциональность в основном имеется в игровых движках. Neovim упоминаю из‐за того, что в отличие от Vim, он позволяет писать UI на любом языке с поддержкой ввода‐вывода (либо unix sockets, либо stdin/stdout) и msgpack. Суть нового GUI в том, что в режимах, отличных от вставки (и смежных вроде замены) и командного Neovim будет получать клавиши на основе сканкода/из раскладки по‐умолчанию.
Насколько я знаю, такой функциональности у существующих интерфейсов нет (и точно нет у «встроенного» интерфейса, использующего терминал). Не знаю, насколько сложно такое написать.
Хотя нет, так просто оно не пройдёт. Представьте себе вариант «пользователь напечатал <Esc>foa
/<Esc>ащф
при наличии привязки <Esc>x
». Здесь, с одной стороны, GUI нужно отправить foa
, с другой стороны, смена режима должна произойти только либо после отправки f
/а
, либо если пользователь подождёт &timeout
времени. Соответственно, по‐хорошему, GUI нужно отправлять сразу оба варианта (и <Esc>foa
, и <Esc>ащф
), чтобы Neovim сам решал, какие клавиши как нужно интерпретировать, с другой стороны, ни Vim, ни Neovim не имеют двойных очередей ввода для разрешения такой ситуации.
Хотя вероятность того, что патч с двойными событиями ввода примут в Neovim намного выше, чем в Vim (тем более, что у Vim весь GUI на C и в репозитории, а не сторонние приложения, общающиеся удалённо через msgpack), придётся сначала изменять именно сам Neovim на C и только потом писать GUI.
set langmap=ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯЖ;
ABCDEFGHIJKLMNOPQRSTUVWXYZ:,фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz
пропадает отображение вводимых по двоеточию команд внизу.
Затем, что единственный реальный способ решить проблему — либо начать получать в нормальном режиме сканкоды клавиш, игнорируя системную раскладку, либо как‐то получать значения клавиш в английской системной раскладке. В консоли такое просто невозможно, на моей памяти таким свойством обладали только несколько игр.
set langmap
по моему мнению какое‐то странное недорешение — такой вариант хорош, если всё, что вы пишете, вы пишете только в Vim — как вы сказали выше — это +1 режим с +1 способом переключения. Что хуже, последний раз когда я его пробовал он был слишком забагован.
Как именно работает set langmap я не знаю. Иначе бы знал, почему он глючит.
Откуда? Консольный не может в принципе, интерфейс терминала такого не позволяет. GVim — не знаю, есть ли в API gtk нужные возможности. И в обоих случаях вам нужно как‐то пробиться через Брама, а он может держать чужие патчи годами в todo.txt, но при этом (относительно) оперативно создавать свои реализации новых возможностей Neovim. С Брамом вам ещё сильно «поможет» тот факт, что консольный Vim таких возможностей будет точно лишён, помню он где‐то говорил, что предпочитает по возможности не создавать разницу между консольным и GUI вариантом (впрочем, разница была, есть и будет; это только ещё один минус).
У меня ВОПРОС КО ВСЕМ: А как вы пишете в vim по-русски? Неужели каждый раз выходя в комрежим, жмете не только Ctrl+[ или Esc, а ещё сверяетесь с раскладкой, и при необходимости переключаетесь? Условимся что русским языком в тексте вы все же пользуетесь.
Я, как я уже писал, переключаю язык в режиме вставки с помощью Control+^, а системная раскладка, во время работы в виме, постоянно английская.
Вообще‐то везде вроде можно настроить не «переключить (toggle) раскладку по сочетанию X», а «при нажатии сочетания X использовать раскладку a, при Y — b». (Кстати, моему дополнению translit3 совершенно точно не хватает средств интеграции с чем‐то вроде powerline — «режимы» есть, индикации нет. Надо как‐нибудь исправить. И я сам пользуюсь именно «toggle» семантикой с ним.)
А, и кстати у меня i3, основной GUI Neovim на Qt, а чтобы нормально участвовать хотя бы в споре «GVim vs neovim-qt», не говоря уже про gtk vs Qt vs «настоящий программист сначала должен написать свой framework» я слишком мало знаю об их возможностях.
А как вы пишете в vim по-русски?
у меня вот такой вот сниппет в .vimrc с давних времён, хотя думаю что уже должны быть более универсальные и элегантные решения…
set langmap=ёйцукенгшщзхъфывапролджэячсмитьбюЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ;`qwertyuiop[]asdfghjkl\\;'zxcvbnm\\,.~QWERTYUIOP{}ASDFGHJKL:\\"ZXCVBNM<>
nmap Ж :
" yank
nmap Н Y
nmap з p
nmap ф a
nmap щ o
nmap г u
nmap З P
Ещё относительно «одинаково реагировать на „d“ и „в“» — ни одна из раскладок не известна, какая является текущей тоже, поэтому Vim сам ничего сделать не сможет. Но вы сами можете сделать много‐много привязок вида nmap в d|nmap В D|vmap в d|vmap В D
, вроде кто‐то так и решал проблему. Но здесь свои минусы: во‐первых, некоторые клавиши есть в обеих раскладках, но в разных позициях (двоеточие, вопросительный знак, точка с запятой, …). Во‐вторых, если у вас есть привязка nnoremap \foo …
, то вам нужно создавать привязку nmap \ащщ \foo
, с привязками nmap f а
и nmap o щ
ничего не заработает. Что хуже, то же относится к gt
, только достать список из таких вот gt
автоматически нельзя (разве что попробовать разобрать справку), тогда как список привязок можно добыть, распарсив либо execute('nmap')
, либо (только в Neovim) через nvim_get_keymap('n')
.
в vim применяется какая-то шаманская клавиатурная магия
это лишь кажется на первый взгляд и для людей без знания английского языка (такие ещё встречаются среди IT-специалистов?). для всех остальных большинство клавиатурных сокращений понятны и являются именно сокращениями, в отличии от менее понятных ctrl+c, ctrl+v и т.п.:
dw — delete word
gt — go to tab
cit/cib — change in tag / brackets
y — yank
v — visual
p — paste
И множество других…
Есть даже человеческие языки, в которых гласных букв нет (арабский, иврит).
Да, но эти символы нередко просто не пишутся и потому приходится угадывать слово.
В иврите так же существуют огласовки помогающие правильно прочитать слово, но они так же обычно опускаются и пишутся только в религиозной или детской литературе.
При этом, в обоих языках существуют согласные буквы, обозначающие определенные гласные звуки, но как минимум в иврите, конкретное произношение может варироваться.
mkdir до двух букв в MSDOS/Windows зато сократили, не волнуйтесь, хоть где-то справедливость торжествует.
И ведь во многих системах mkdir вроде бы сокращалась до md.
cit/cib — change in tag / brackets
Со вторым ясно удаляет внутри (), а что делает первый?
И почему-то не работает: c% — Вырезание выражения в скобках. (% этоShift+5)
Со вторым ясно удаляет внутри (), а что делает первый?
не удаляет, а заменяет. cit — тоже самое, только «заменить текст внутри тэга» (html или xml), очень удобно. а удалить будет соответственно dib/dit (delete in brackets / tag).
И почему-то не работает: c% — Вырезание выражения в скобках. (% этоShift+5)
% — это не внутри скобок, это до следующий / предыдущей скобки (и других парных символов) под курсором (или ближейшей к курсору). подробней про этот оператор можно прочитать в справке
:help %
nano тоже работает без мыши.
В nano нет модальности, это всё портит. Работать без мышки в vim сильно удобнее.
Просто вместо вменяемого TUI (Text User Interface) в vim применяется какая-то шаманская клавиатурная магия, возникшая стихийно на заре программирования,
Там не шаманская клавиатурная магия, а модальный интерфейс. Вот в nano, да — шаманская клавиатурная магия.
Подытожим, имхо эти пункты важны:
• предпосылка для пользования вимом — необходимо владеть слепым десятипальцевым методом набора;
• понимание в чём собственно преимущество — редактирование вслепую не отрывая рук, при помощи моторики, своего рода «играя аккорды» (а не разные плюшки, плагины, или прочие вещи которые обычно приводятся как аргументы);
• использовать режим вставки текста только по назначению, иначе теряется весь смысл и это лишь приносит боль и страдание.
• таки да, не каждый может стать музыкантом, а некоторым это и не нравится, о вкусах не спорят.
Это важно только для тех, кому важен собственно слепой десятипальцевый. А таких, по крайней мере у нас, не очень много. И для программирования это не обязательно. Не хочу поднимать отдельный флейм, но один знакомый успешный и даже знаменитый программист набирает двумя пальцами и предпочитает mcedit :)
А вот это уже ничуть не логично. Если из A следует B, то из не-A не следует не-B.
> vim ему не подойдёт, это будет просто мучение
Я набираю 4-6 пальцами, в зависимости от фазы Луны, но при этом в основном использую vim. И никаких мучений. Достаточно для контпримера?
> редактирование вслепую не отрывая рук, при помощи моторики, своего рода «играя аккорды».
Из использования «аккордов» ничуть не следует необходимость редактирования вслепую.
И что с того?
> микроскопом тоже можно гвозди забивать
> Но прошу, зрите в корень. В данном случае десятипальцевый является неотъемлемой частью философии вима, иначе человек не сможет использовать этот инструмент эффективно.
А меня в принципе не интересует подобная «идеальная» эффективность. Это всё равно, что утверждать, что никто дома не использует молоток эффективно, потому что занимаются какой-то ерундой вместо курсов по сверхэффективному забиванию чего угодно куда угодно. Но обычно в доме таки есть молоток:)
И в _такой_ Ваш корень я «зреть» не собираюсь.
> дальнейшее обсуждение просто бессмысленно и действительно скатывается у «флейм» вместо конструктивного разговора по теме.
Верно. Но заметьте, что среди тех, кто тут хвалил vim, на Ваши неоднократные «вопияния в пустыне» что-то отклика чуть менее, чем никак. Видимо, таки мало кого реально волнует это «главное преимущество». Можете подумать на досуге :) только лучше без глобальных выводов про человечество :)
опа, есть свободная клавиша — быстро вносим в код самого редактора новый функционал, компилируем — работает!, в нем всё продумано и весьма логично (не с точки зрения того, кто привык к устоявшемуся принципу ввода текста конечно).
Я не понимаю как можно не понимать зачем существует vim :) Лично я уже не понимаю как люди в обычных редакторах эффективно выполняют такие частые задачи (особенно в программировании) как например выделение/копирование/удаление текста в кавычках или скобках (в том числе {}, [], <>). В vim это делается за миллисекунды нажатием например `di"` (удалить все внутри кавычек) или например `ya(` (копировать содержимое внутри скобок вместе с самими скобками). Или например макросы. Как люди вообще живут без vim'овских макросов? А метки? Глобальные, локальные, да еще и с возможностью использовать их в командах…
опа, есть свободная клавиша — быстро вносим в код самого редактора новый функционал, компилируем — работает!
, в нем всё продумано и весьма логично (не с точки зрения того, кто привык к устоявшемуся принципу ввода текста конечно).
Далеко не всё «продумано и весьма логично». В Vim очень много legacy (настолько, что 100 % совместимый парсер VimL создать в принципе невозможно, т.к. есть настройки влияющие на то, как дальнейший код интерпретируется и интересные вещи вроде возможности написать execute "function Test()\nexecute 'if 1'\necho 1\nendif\nendfunction"
) плюс Брам периодически добавляет что‐то вообще без консультации с сообществом, без нормальных тестов и с неадекватными сообщениями об ошибках. Но новые изменения идут почти полностью в VimL, тогда как «нормальный» режим практически не изменяется, со времён Vi туда добавилось не так уж много. Намного больше добавилось в режим ввода, но продумано оно лучше. А именно с нормальным режимом и режимом ввода пользователь взаимодействует больше всего.
Vi — это наследник командного редактора ed. По сравнению с командными редакторами, двухрежимные — были большим шагов вперед.
Более того, двухрежимный редактор лучше чистого WISIWIG. Попробуйте пожить в чистом WISIWIG, без команд поиска, замены, перехода к строке по номеру…
Если вы сравните vi с другими командными и двухрежимными редакторами, то увидите, что как раз «нормы и концепций пользовательского интерфейса» у них общие. Ну скажем много общего с EDT из RSX-11M. Вот только эти концепции очень старые, вы с ними просто не знакомы. Например, у интерфейса навигации по эрану ноги растут от интерфейсов управления терминалами VT05 и VT52.
Даже на 9600, где перерисовка экрана занимала 2 секунды, двухрежимный EDT был удобнее WISIWYG редактор TED. Примерно до 38400 прокрутка экранов настолько медленна, что её избегают. И только со 115200 WISIWYG становится реально удобен.
:)
Да, было и такое. Приходилось поднимать сервера через консольные сервера RS-232 да еще и через мобильный телефон в до GPRS-ые времена (через CSD на скорости 9600 bit/s). В промежутках между откликами с серверной стороны успевал подумать что сделать следующим нажатием, чтобы соптимизировать работу...
Сейчас при использовании ssh поверх gprs/edge не менее актуально (когда пинги достигают сотен миллисекунд, а то и целых секунд). Нужно не часто, но когда понадобилось — это просто спасение.
Ну и всякий embedded, который вполне может использовать низкоскоростной uart на 9600-19200.
а зачем vim и подобные я понять не могу
Он есть везде. Даже открывая старую солярку, я обнаруживаю там vi.
Как сисадмин я только лишь по этой причине освоил vi.
Прада потом вошло в привычку.
а зачем vim и подобные я понять не могу.
1. Без мыши все что угодно.
2. Гарантия не испортить текст, если вы умеете работать с vim. Важно для редактирования программ/конфигов и для медленной связи. Для администрирования серверов первым делом ставлю vim и mosh.
Очень просто — после освоения vim вы перестанете пользоваться другими редакторами.
Освоил vim. Каждый раз при необходимости воспользоваться (через ssh, например) – плююсь. Обычно код пишу в Sublime Text и в сравнении с ним у vim не вижу ни одного преимущества (лично для меня), кроме консольности.
Sublime стОит >50$, а vi/vim бесплатен.
Просто вы просто не освоили vim ;)
Можно включить Vintage mode и считай из vim недалеко ушел
Об этом и речь. Из под палки, при необходимости и т.д. вы будете страдать вместо того чтобы пользоваться им в своё удовольствие. А почему плюётесь? Если вам не комфортно, значит вы не освоили vim.
У меня vim — основной редактор, что очень выручает, когда сидишь на нескольких платформах.
Если вам не комфортно, значит вы не освоили vim.
Очень странная логика. Ещё мне некомфортно программировать на ходу – значит, я не освоил навык ходьбы?
Безусловно, vim выручает, когда нужно по-быстрому зайти на сервер и что-то поправить, или если надо что-то сделать за чужим компом, или ещё какие-то аналогичные ситуации. Но из-за этого использовать его по-дефолту, несмотря на все неудобства – не вижу смысла.
Ещё раз – про "неудобства" – это моё личное мнение, я вполне себе признаю, что кому-то в силу привычки vim кажется удобнее других редакторов.
До вима я пользовался студией и другими подобными убогими редакторами/IDE. У каждого редактора (на разных платформах) свои кнопочки и кривости. Элементарное редактирование неудобно практически во всех.
>> Ещё мне некомфортно программировать на ходу – значит, я не освоил навык ходьбы?
Дерзайте:
https://www.instagram.com/p/BSiHSdBlEPH/
Если вы не можете выйти из Vim, вероятно вы не умеете читать ибо то, что написано далее — первое, что вы увидите запустив его.
~
~ VIM - Vi IMproved
~
~ version 8.0.542
~ by Bram Moolenaar et al.
~ Modified by <cygwin@cygwin.com>
~ Vim is open source and freely distributable
~
~ Help poor children in Uganda!
~ type :help iccf<Enter> for information
~
~ type :q<Enter> to exit
~ type :help<Enter> or <F1> for on-line help
~ type :help version8<Enter> for version info
~
Если пользователь случайно зашёл в режим редактирования, ":help" добавится в набранный им текст (про ESC ему ничего не сказали).
Если же ему повезло и он всё-таки случайно вышел обратно в командный режим, но до этого уже что-то набрал, то на ":q" получит:
E37: No write since last change (add ! to override)
(нажатие "!" здесь тоже не поможет. Разве что F1 с уточнением:
Get out of Vim: Use ":qa!<Enter>" (careful, all changes are lost!).
)
Резонно, но если честно, все становится намного хуже, если банально открыть файл с текстом. Тогда сплеш не появится и уже точно будет все то, что вы описали.
И на ctrl+c (или что там аналогичное на win) vim пишет Type :qa! and press <Enter> to abandon all changes and exit Vim
. Если пользователь в режиме вставки, то на двойное ctrl+c.
Подозреваю, что большинство попавших в vim не открывали целенаправленно через него файл.
Т.е., vim — это Омск, только виртуальный! < /sarcasm>
:e! Enter или :x или :wq — Выход без сохранения:x и :wq — выход с сохранением, причём первая сохраняет только в том случае, если были изменения.
Nano для меня очень сложный, остался на vi.
К счастью, не придется. И выкручивать пальцы в vi тоже не нужно. Потому что наконец-то появился редактор micro, и он гораздо ближе к пользователю, чем его именитые собратья.
Страшно сказать, но в нем даже работает общий системный буфер обмена даже если присоединиться к хосту по SSH, и запустить micro удаленно:
Настройка общего буфера обмена для редактора Micro, который запущен в удаленной SSH сессии
Представляете, можно пользоваться привычными в DE клавишами копирования/вставки, выделять текст с помощью Shift+стрелки, а текст, при выделении строк, даже если он длинее или шире экрана, попадет в буфер обмена. Наконец -то в 2017 году появилась такая возможность в консольном текстовом редакторе.
Micro тоже далеко до совершенства в плане интерфеса, но это уже хоть какой-то шаг в сторону человеческого опенсорчного консольного редактора.
Представляете, захожу по ssh на домашний роутер (SOC со жменькой оперативки и прошивкой в 4M), набираю vi — и он работает. Набираю micro — и увы…
Мысль понятна?
Vim — это вообще неюзабельно. Фанаты, вы уж простите =)
Ну а вообще лично для меня — консольные редакторы подходят только для «подправить что-то по-быстрому на удаленном сервере». Для полноценной работы таки нужно нормальное gui. И да, компьютер без мыши — неюзабелен в принципе для меня. Даже с тачпадом (а ноутбуки я в принципе не приемлю по эргономическим соображениям).
Обидно, что любителей «дедушки» vi называют мазахистами. У vi есть одно приемущество, которое его для меня делает любимым инструментом — он есть во ВСЕХ *nix системах, с которыми приходилось работать, «из коробки». Я далеко не все его возможности знаю, но те, что запомнил 20 лет назад исполюзую регулярно. В 100% случаев в незнакой системе в любом конфигурационном файле им удается найти строку или нужный контекст и внести изменения. Я не задумываясь первой попыткой вбиваю vi и он всегда готов к работе (всегда есть в $PATH). Для многооконного редактирования с множественными undo почти всегда под рукой есть что-то более удобное.
Да, он много где есть, но не везде и не везде "из коробки"…
В медиаплеере Dune HD он действительно есть, а вот в прошивке для роутеров Asus (не стандартной) его нет.
И в dd-wrt его нужно отдельно ставить.
ASUSWRT-Merlin RT-N66U_3.0.0.4 Fri Jul 17 03:15:20 UTC 2015
admin@RT-4:/tmp/home/root# nano
-sh: nano: not found
admin@RT-4:/tmp/home/root# find / -name nano
admin@RT-4:/tmp/home/root#
Есть куча дистрибутивов, где его не окажется. Да и не Linux'ом единым, за пределами linux'а много систем, где в базе не будет nano.
Тем не менее, и тут у vi существенное преимущество: он входит в busybox.
Поэтому как бы не был nano "везде", vi будет гораздо "вездее".
Знать его, при соответствующей специфике работы, безусловно надо, хотя бы на базовом уровне. А вот любить imho не за что — времена терминалов на 2400бод, когда он был спасением, давно прошли, и концепция с ними устарела.
Поверь, для работы с проектами за 20 лет сделано много хороших IDE, и подсветка синтаксиса у того же nano присутствует, и поиск работает нормально.
Ну да, текст только очень неудобно редактировать, а так — всё хорошо.
Ну, по вашему мнению нежелание переходить с Vim означает нежелание развиваться. Но в других редакторах хотя и добавилася подсветка синтаксиса и всё такое — редактирование текста какое было в блокноте, такое и осталось. Ни о каком развитии речи не идёт.
Осознанный отказ использовать оптимальные инструменты для качественного выполнения поставленной задачи — вот что такое «нежелание развиваться». Vim уже никак не подходит под определение «оптимальный». Он слишком сложен для текстового редактора и недостаточно гибок для больших проектов.
Когда появился vim, не было выбора.
У Столлмана выбора, может быть, и не было. Поэтому он сделал EMACS. После этого выбор точно был :)
Сейчас выбор есть: для редактирования текста я воспользуюсь простым редактором, я для редактирования кода — IDE с полным набором плюшек, для написания романа — текстовым процессором.
Редактирование текста там везде такое, как в блокноте. Стрелочки, Control + C, Control + V, все дела.
Осознанный отказ использовать оптимальные инструменты для качественного выполнения поставленной задачи — вот что такое «нежелание развиваться».
Только никто не отказывается от оптимальных инструментов. Одни доводят вим до состояния, когда его можно сравнить с IDE, другие вставляют в IDE режим редактирования текста как в виме.
Он слишком сложен для текстового редактора и недостаточно гибок для больших проектов.
А что вы имеете в виду, когда говорите, что он слишком сложен для текстового редактора?
Одни доводят вим до состояния, когда его можно сравнить с IDE
А зачем доводить Вим до состояния IDE? Не проще грамотно использовать само IDE?
Да, видимо Ви так напряг Столлмана, что он решил написать Емакс.
Ну да, он так и сказал. Но теперь, повторюсь, выбор есть :)
А зачем доводить Вим до состояния IDE?
Чтобы пользоваться режимами.
Не проще грамотно использовать само IDE?
Зачастую проще написать плагин к IDE, который перенесёт туда куски от вима. Люди так и делают, да.
Вот что реально неудобно в vim — копипаста.
Если он единственный редактор — одно дело. А если он открыт в консоле/собственном гуе, а рядом открыта куча других программ (десктоп), которые давно знают, что делать по нажатию Ctrl+C/Ctrl+V, vim на их фоне раздражает. Именно тем, что "не как все".
Есть окошко с текстом, есть курсор — будь добр, реагируй как другие нормальные окошки с текстом и курсором! Все другие комбинации, как правило, используются гораздо реже, но эти....
для тех, кто никак не может переучиться на «современную» концепцию редактирования текста
Я так думаю, что если-бы копать лопатами было так удобно и производительно, экскаватор не изобрели-бы. По аналогии: если vim такой удобный, зачем придумывать более простые средства работы?
Да, это сделано для того, чтобы хоть как-то привлечь людей, ничего кроме vim не принимающих.
Это люди, которым нравится вим сделали для себя способы комфортно работать в IDE.
Опять-таки, что эти моды дают, кроме знакомой комбинации команд/клавиш? Ничего. Все можно сделать и более простым (читай: НЕ vim-овским) путем.
Моды дают режимы, а не только знакомые комбинации клавиш. И эти самые режимы это как раз то, почему людям нравится вим. Вим интересен режимами, а не фичами наподобие поиска файла по имени.
По аналогии: если vim такой удобный, зачем придумывать более простые средства работы?
Зачем учиться слепому методу печати, если можно просто смотреть на буковки? Зачем вообще наносить буковки на клавиши, если удобнее печатать вслепую? Для того, чтобы редактировать текст мог ребёнок без всякой подготовки.
А зачем вам клавиатура? Запустите экранную клавиатуру и вводите мышкой текст, комбинации клавиш. Или у вас такая корявая система, что экранная клавиатура этого не умеет?
Вы не поняли сути. Она не в том, что можно делать с использованием режимов. Суть в том, как вы будете это делать. Режимы удобнее тем, что для всех этих вещей, во‐первых, достаточно клавиатуры, во‐вторых, используются более удобные комбинации, чем распальцовки на две…четыре клавиши с необходимостью двигать руку до стрелочек, а то и до мышки. Хотя можно найти и некоторые уникальные вещи — ваша IDE, к примеру, умеет «выдели отсюда и до строки frobnicate(foo);
»? — модальный режим интересен не ими (и, вполне возможно, что именно ваша IDE такое‐таки умеет).
Да, для работы в IDE мне не надо помнить здоровенный набор команд и порядок их ввода. Использование мышки здесь более интуитивно.
Кроме того, двигаться все-таки надо, хотя-бы и за мышкой, а то можно совсем здоровье на этой работе потерять. :)
И не говорите мне, что у вас нет лишнего USB порта под мышку, или ваша система настолько tiny, что все драйверы из неё вырезали, а vim оставили. Все, что написано вами выше — всего-лишь привычка, вы используете вим потому что вы ПРИВЫКЛИ его использовать, не более того.
Не думаю, что использование экранной клавиатуры для редактирования текстовых файлов такая уж плохая идея.
Пробовали печатать на экранной клавиатуре не глядя на клавиши?
Текущая проблема экранной клавиатуры — отсутствие вменяемых тактильных ощущений. Печатать 10ю пальцами вообще слабо представляется возможным.
Да, для работы в IDE мне не надо помнить здоровенный набор команд и порядок их ввода. Использование мышки здесь более интуитивно.
Либо вы пользуетесь IDE как простым редактором кода, либо постоянно будете скакать с клавиатуры на мышку.
Современные IDE для эффективной работы требуют помнить некоторый набор команд (часто с emacs-like комбинациями клавиш). Начиная от банальных сохранения файла/проекта, поиска, перехода к другим функциям/методам/структурам/классам, запуска/деплоя, операций в режиме дебаггера (step over/step into/run/continue/et cetera). И заканчивая всякими операциями рефакторинга (комбинации клавиш для не очень частых можно и не помнить, но помнить название и комбинацию для запуска find action).
Режимами? Правда?
Правда :). Те, кому не нравится вим часто считают, что любители вима вынуждены мириться с режимами для того, чтобы воспользоваться другими фичами, которые предоставляет вим. Такими, как подсветка синтаксиса, автозамена и так далее. На самом деле плагины, которые реализуют эти фичи, зачастую пишут любители вима для того, чтобы иметь возможность продолжать пользоваться режимами. Потому что в других редакторах, в которых есть эти фичи режимы часто отсутствуют.
А а что в них такого уникального?
Судя по следующим вопросам вы хотели спросить не чем уникальны режимы, а что такого можно сделать режимами, что нельзя сделать без них. Вы спрашиваете про замену с подстановкой, копирование и поиск по шаблону — всё это можно сделать без режимов. Режимы просто позволяют делать это не убирая рук с home row и не зажимая дополнительный клавиши-модификаторы, что очень приятно.
Повторюсь, ситуация не обстоит так, что режимы предоставляют какие-то такие офигенные фичи, что ради них пользователи готовы терпеть боль от использования режимов. Режимы просто приятно использовать.
Вим на самом деле неудобен, но те, кто им пользуются к нему привыкли? Режимы это тоже на самом деле неудобно, но те, кто ими пользуется, этого не замечают — без режимов им было бы легче жить? А декларируемое пользователями удобство это иллюзия? И, если пересадить пользователя вим за другой, более удобный редактор и не давать доступа к виму месяца два — он привыкнет к хорошему и обратно к виму вернуться не захочет?
Я правильно понимаю вашу точку зрения?
Если да, то помогите мне сделать её более научной :). Как можно доказать, что это не так? Что режимы в виме на самом деле удобнее?
Следуя вашей логике, возможен и такой эксперимент: пользователь не работает в вим, но имеет опыт работы в другом любимом редакторе, вынужден пользоваться вим в течении месяцев двух. Потом у него будет возможность вернуться к своему родному и привычному — он останется работать с вим?
Или вы не привыкли использовать режимы в вим и для вас это каждый раз поиск правильной команды в мане?
Вот этот сценарий:
«попробовал первый раз вим, потерялся/не понравился/отстой. Потом пришлось работать — привык, теперь все норм».
и эксперимент, который вы предложили
пользователь не работает в вим, но имеет опыт работы в другом любимом редакторе, вынужден пользоваться вим в течении месяцев двух. Потом у него будет возможность вернуться к своему родному и привычному
Это же один и тот же кейс. И, по вашим же словам, пользователи привыкают и остаются на виме. Или у людей из первого кейса нет возможности вернуться к своему редактору?
И ещё мне немного неясно. Это вот этот эксперимент вы предлагаете для того, чтобы отличить тех, кому кажется, что им удобно от тех, кому на самом деле удобно. У тех, кто откажется от вима при первой возможности — были иллюзии, а у тех, кто не откажется — настоящие положительные ощущения от удобства?
К вам вопрос: у вас был любимый редактор до того, как вы стали пользоваться вим?
Иллюзии? Это уже из разряда метафизики. Может быть, иллюзии это ощущение удобства вим? И те, кто отказался от его использования это поняли? Обсуждать это дальше не имеет смысла.
И вы не отвели на мой вопрос: вы привыкли использовать вим?
Итак. Эксперимент такой:
Заставляем пользователя какое-то время (пусть 2 месяца) пользоваться только вимом. Потом возвращаем ему любимый до этого редактор. И, если он продолжит пользоваться вимом, или включит в своём любимом редакторе модальный режим — значит ему это по настоящему удобно. Если нет, то удобство от использования режимов — это просто иллюзия. Правильно я всё понял?
Иллюзии? Это уже из разряда метафизики. Может быть, иллюзии это ощущение удобства вим?
Ну да, я так понял, что вы хотите сказать, что удобство, которе создаётся при использовании vim — это просто иллюзия. А на самом деле человек банально привык к неудобному.
К вам вопрос: у вас был любимый редактор до того, как вы стали пользоваться вим?
Ну как у всех, наверное. EmEditor был и Notepad++. Код что тогда писал в Идее, что сейчас пишу.
И вы не отвели на мой вопрос: вы привыкли использовать вим?
Привык, конечно. Не столько к виму, сколько к модальному редактированию. Очень удобно.
Все можно сделать и более простым (читай: НЕ vim-овским) путем.
Более простой != более эффективный. Например взять мышь, выделить текст от одной скобки до другой, затем выбрать в выпадающем меню пункт «вырезать» проще чем запомнить команду `di(`, но уж точно не эффективнее.
Дружище, за 20 лет работы можно уже изучить что-то новое.
Спасибо, кэп! Только, я не говорил, что умею только в vi… (X)emacs мне для разработки на Perl вполне хватало.
В системах без монитора, мыши и кнопок, мне не нужны другие редакторы. Я ни в коем случае не принижаю нужность удобного IDE. Просто, я давно не занимаюсь разработкой и мне не надо верстать "Войну и мир". Для администрирования *nix систем вполне хватает vi. Ставить кучу лишних пактов в систему с изначальным конфигом "kernel only" не хочется. Не все железки имеют доступ в Интернет. Таскать пакеты на "дискетках" не удобно. Делать backdor не хочется. Не для всех систем есть место куда можно что-то поставить.
Не нужно передергивать. Для программирования уже давно есть соответствующие среды разработки (под все системы). Помнится в далеком прошлом для программирования на Perl я использовал (x)emacs. В принципе было довольно удобно.
Обсуждаемые редакторы, IMHO используются в основном администраторами (для редактирования конфигов).
В общем получу я ещё кучу минусов и карму загоню ещё дальше.
И вполне заслуженно как минимум за:
Тут практически нет разницы, и только один диагноз Vim мозга.
Но желание тащить за собой устаревшие концепции разработки в современную IDE
Не понимаю о чем вы. Vim плагин в IDE никак не влияет на концепцию разработки — просто способ редактирования текста. С тем же упехом можно заявить, что использование Chrome для гугления позволяет писать более эффективный код чем тот, что вы погуглите с IE.
Я про консольный Vim ничего не говорил и необходимость IDE для разработки не отметал.
Далее:
- Vim — текстовый редактор.
- Текстовый редактор является неотъемлемой частью IDE
Если разработчик пользуется текстовым редактором эффективно (и тут уже не важно каким), то соответствующий плагин не может снизить его эффективность если он не ломает того функционала (автодополнение, рефакторинг, подсветка синтаксиса и пр.) который предоставляет базовый текстовый редактор в IDE.
Я много раз сталкивался негативными последствиями работы программистов консольного Vim
а поведайте примеры, пожалуйста :) для эрудиции
Я вот не вижу ничего смешного чтобы снести основную ветку git в продакшен репозитории на сервере. А потом сослаться в на ошибку в каком то плагине.Я тоже не вижу )) но у меня тут сразу вопрос к организации процесса: как программиста, да со своими плагинами и конфигами, пустили на продакшн?
Линтера пропустившего простую опечатку потом попавшую на продакшен сервер и конечно же потушивший его к чертовой бабушке.а как же тесты?
А потом искавший её два часа.а как же
git log
?Вечно срывающиеся сроки проекта.
и во всём этом виноват получается vim? Ооок ))
Я как‐то не вижу, что такого специфичного для Vim в «ошибке в плагине» (90% что плагин тут не причём, просто люди не любят признавать свои ошибки), линтере и срыве сроков. Настраивать (скорее, писать дополнения) можно и IDE. И вообще вы скорее описали не Vim’еров, а «неопытных разработчиков», совмещённых с неграмотными админами (где CI и запрет на force-push в основную ветку?).
Я вот не вижу ничего смешного чтобы снести основную ветку git в продакшен репозитории на сервере.
Я тоже не вижу. Странно, что такая возможность у разработчика есть.
А потом сослаться в на ошибку в каком то плагине.
Ошибка может быть и в плагине к IDE.
Линтера пропустившего простую опечатку потом попавшую на продакшен сервер и конечно же потушивший его к чертовой бабушке.
Программист допустил опечатку, юнит тестов видимо нет, CI видимо нет, банального тестирования видимо нет (иначе опечатка не потушила бы сервер, а сделала бы что-то не такое масштабное). У вас проблем гораздо больше, чем программисты, которые пишут в Vim.
Не вижу ничего негативного во фразе объясняющий образ мышления.
Вы не могли бы привести пример фразы "что-то там головного мозга" и чтобы это что-то подразумевалось не в негативном ключе? И чтобы те, кто это что-то делает подразумевались в нейтральном ключе?
Да и как я уже говорил сообщество Vim плохо переносит критику.
Ну вы попробуйте в топике, посвящённом особенностям использования Intellij IDEA написать про IDE головного мозга и посчитайте минусы :). А потом напишите, что не видите ничего негативного во фразе объясняющий образ мышления и посчитайте минусы ещё раз :).
Двачую. Необоснованное оскорбление людей — надёжный способ хабросуицида.
Скажите как повысить себе карму, хочу присоединиться к кармовойнам)
Для всех современных IDE есть vim-плагины, сюрприз-сюрприз. Например, IdeaVIM для всех JetBrains-овских IDE.
Изучать вас никто не заставляет, а рассуждения о бесполезности оставьте при себе. Мне полезен — я с ним работаю эффективнее, чем без него, двух-трехбуквенные комбинации всегда будут быстрее, чем позиционирование курсора. Вам бесполезен — ну и отлично, никто не заставляет.
Но в реальности привык использовать vim для всего, где не нужно IDE с полным набором уже специфичных плюшек вроде рефакторинга.
А для VisualStudio Есть бесплатный VsVim (и платный ViEmu, но особых преимуществ я у него не смог обнаружить). Интегрируется не идеально, но вот уже который раз после переустановки студии ставлю его, значит есть польза;)
Особенно он выручает при работе с ноутбука, когда есть только тачпад и нельзя мышкой вжух-вжух.
Где бы найти наклейки на клавиатуру с командами vi?
А зачем они? Я основные команды помню, потому, что они интуитивно запоминаются:
i — Insert
a — Append после текущего символа
SHIFT i — Insent в начало строки
SHIFT a — Append в конец строки
CTRL f — Forward (пролистывание на страницу) эти же команды можно использовать в команде man и more
CTRL b — Backward (пролистывание на страницу назад) эти же команды можно использовать в команде man и more
w — Write
q — Quit
set nu — пронумеровать строки (удобно если в логах пишут номер проблемной строки)
dw — Delete World
dd — удалить строку (не знаю что значит второе d. я, просто, это помню)
Стрелками уже давно можно перемещать курсор (раньше это делалось кнопки H J K L (вверх, влево, вниз, вправо) почти как в играх)
Для "десятипальцевого" был Lexicon, а сейчас есть Word, Wordpad, Pages и масса других.
Смысл в vi в том, что он есть во всех (тут правда, сказали что не во всех) *nix системах и всегда можно поправить конфиг и вывести систему из "штопора". Никто не говорит, что в нем нужно верстать "Войну и мир". Правда, если бы у жены Л. Толстого (она переписывала труды) был хотя бы vi, было бы не мало пользы.
В МИФИ когда были лабораторные по Фортран код по методичкам предлагалось писать в Vi (и через ssh)… И это при том, что специальность — электроника, а те двое из моей группы (один из них я), кто реально мог писать код в консоли (имел опыт администрирования linux по ssh), приходили по большей части только на сдачу лабораторных и не желали использовать Vi, потому что знали, что это такое и также знали как его не использовать (конкретно я собрал и залил себе статический бинарник с Vim на случай, если во время сдачи нужно будет что‐то менять).
Дискуссия переходит в "холивар"… Складывается ощущение, что кто-то собирается блокировать vi, vim, nano и др., как это собираются делать с VPN и менеджерами. Вопрос не в том, кто что предпочитает, а в том, что тут мы пока вольны использовать то, что больше нравится. У каждого из редакторов есть плюсы и минусы, причем у каждого свой набор и того и другого.
Я тут где‐то предлагал что‐то блокировать? Я вообще‐то сам Vim использую. Мне просто не понравилась та ситуация, а здесь я показал, что у кого‐то может быть и такой первый опыт с Vi (точнее, там была обычная «крошечная (tiny)» сборка Vim). Не думаю, что он кому‐то понравился: tiny Vim даже не все пользователи Vim переваривают, тем более с настройками по‐умолчанию (т.е. в режиме совместимости), а уж те, кто с модальными редакторами не работал, и подавно.
В мои студенческие годы, когда я подрабатывал на кафедре Информатики, студенты на дискетах тоже притаскивали свои редакторы (включая lex.exe) и мамой клялись, что без них не могут редактировать в qbasic (quickbasic). Приходилось делать внушение и показывать, что при сохранении файлов в них частенько оказывалась куча дополнительного мусора, который был понятен только этому редактору. Спасало только то, что сеть была на бездисквых станциях, а на сервер можно было писать только в один раздел из которого нещадно выметались все программы. Так мы во времена aidstest боролись с вирусами...
Тем, кто не помнит хотя бы радость перехода от 5-дюймовых дискет на 3-дюймовые, трудно будет понять юмор во фразе: «Windows: От людей подаривших вам EDLIN!»
Сейчас у меня в строю и используется zx-evo.
p.s. Хабр любит vim
Два в одном: как пользоваться Vim и Nano?
Напишите пожалуйста статью "Как не пользоваться Vim и Nano"
Затем, что ему приходится этим пользоваться, но хотелось бы от этого уйти. Есть какие-то более привычные альтернативы консольных текстовых редакторов под linux?
А знать все консольные редакторы невозможно, тогда не останется времени научиться толком уметь работать хотя бы в одном из них. Поэтому я даже emacs осваивать не буду, зачем, когда трех и так с избытком на все случаи жизни хватает.
1)Для начала редактирования нажимаем «i»
2)После завершения всех изменений нажимаем ESC
3)Теперь для выхода с сохранением вводим ":qw" и Enter
4)Если не хотим сохраняться — ":q" и Enter
Всё. Вся боль людей.
Опишите, какими командами пользуетесь чаще всего и порядок действий. Неужели удобно каждый раз переключаться между командным и модальным режимами?
Если в Notepad++ можно зажать Shift и стрелками выделить текст, затем его можно легко скопировать, вставить, сдвинуть (Tab/Shift+Tab) или нажав Ctrl+H произвести замену в выделенном блоке используя те же регулярные выражения, то в vim я не понимаю, как можно так же легко это сделать. Каждый раз надо переключаться между режимами, запоминать номера строк, между которыми надо произвести замену (:12,27s//g), а если мне надо произвести замену не в целой строке, в середине заменить часть точек на запятые.
Возможно я неправильно им пользуюсь. Поэтому хотелось бы не просто список команд из мануала, а пояснение, как ими пользоваться, некий алгоритм действий.
Вместо номеров строк нужно просто использовать выделение (которое визуальный (visual) режим). Выделяете, пишете :s
, в командной строке напишется :'<,'>s
. В визуальном режиме доступны все команды для перемещения курсора, в т.ч. вверх/вниз и /regexp
. Вызывается визуальный режим клавишей v
посимвольно, с модификаторами Shift (построчно) или Ctrl (блочное выделение) (во всех случаях :s
сработает одинаково, диапазон строк является диапазоном строк).
Вот в середине что‐то заменить не так просто, можно только пользоваться \%V
в регулярном выражении.
(Кстати, здесь есть ещё одно непонятное legacy: режим выделения (select mode). Имитирует выделение из более популярных редакторов — не принимает команды, выделенный текст при печати чего‐нибудь без Ctrl будет заменён. Не знаю ни одного человека, который бы его использовал, кроме того, почти все дополнения используют vnoremap
или даже noremap
, что определит сочетания клавиш для режимов выделения и визуального одновременно, разрушая утверждения «не принимает команды, выделенный текст при печати чего‐нибудь без Ctrl будет заменён».)
diw — удалить слово
ciw — удалить слово
И там, и там «удалить»? Лучше так:
diw — (delete inner word) удалить слово под курсором
ciw — (change inner word) заменить слово под курсором (удалить и перейти в режим редактирования)
Пытаюсь понять зачем нужен vim когда есть такие редакторы как sublime и phpstorm...
Я понимаю если нужно что-то поправить на сервере где нет редакторов, это да. Но на домашнем легче же написать sudo subl file.txt и все.
Кто-то писал что в vim легко убирать текст из кавычек. Серьезно? Хорошо, раз в год когда палка стреляет бывает нужно поправить, но логику все равно не понять.
Вот собственно и вся логика. Не понимаю что здесь непонятного :) Еще до того как я освоил vim мне была понятна мотивация тех, кто им пользуется. Также как мне вполне понятно зачем люди пользуются emacs, unix-like ОС, терминалом или предпочитают МКПП в автомобиле. Подобные инструменты действительно позволяют работать эффективнее, а иногда просто приносят больше удовольствия при их использовании, что тоже немаловажно :)
Представьте, вам нужноразово нагенерить 1000 однотипных конфигурационных файлов с различающимися 5 строками. Vim (а он в том числе научит пользоваться sed/awk) вы настроите под эту задачу.
Мнение о том, что за 20 лет придумали множество более удобных инструментов, разбивается о факт, что и vim 20 лет не стоял на месте. Это как сравнивать ms word и latex для тех, кто профессионально работает с версткой книг. Или excel и scilab для матстатистики. Вы профессионально
Чтобы пользоваться vim нужно желание совершенствовать свой повседневный инструмент. Крайне желателен навык слепой печати. И вообще необходимо желание использовать аскетичную линуховую консоль и понимание Ее преимуществ, принятие этой философии) Ведь там, где этот редактор, обычно ставится screen/tmux, активно используются sed/ask и разные башизмы.
P.S. Кстати, может кто подскажет, есть в ms word настройка редактирования в режиме vim?
Ctrl+a — Увеличить число под курсором на единицу
Ctrl+x — Уменьшить число под курсором на единицу
не только под курсором, но и после него или в каждой строке выделенного текста, что гораздо-гораздо лучше ;)
:g/string/d Удалить все строки, содержащие “string”
:v/string/d Удалить все строки, не содержащие “string”
из 7. 100 команд vim, которые должен знать каждый
Два в одном: как пользоваться Vim и Nano?