All streams
Search
Write a publication
Pull to refresh
6
0

трубкозуб

Send message

У вас получилось О(n), с клавиатуры получается O(1) =)
:%s@\<old_name\>@new_name@g
Добавьте в начало tabdo, eсли нужно провести замену в нескольких открытых файлах.

Похоже, перед добавлением статьи в этот блог надо ставить галочку "Я прошёл vimtutor" (привет, ZyXI =)


Но для того, чтобы сместиться на два-три слова вправо, — переходить в какие-то режимы и обратно, да еще и считать это киллер-фичей вима, — увольте.

Для этого не надо выходить из режима вставки. Ctrl-O, 3w, печатаем дальше.


У вима из коробки есть несколько уникальных возможностей редактирования, которых нет в IDE
Перейти к следующему/предыдущему абзацу — Да, это было бы полезно иметь в IDE. Но в основном при редактировании статей для хабра, а не для кода.
Перейти до пробела. — Ну, можно считать полезной штукой, но не слишком крутой. Несколько раз нажать ctrl-стрелочка будет иметь тот же эффект.

Можно и номер телефона вводить вот так, будет тот же эффект, что обычная форма.
image
Серьёзно, это очень круто — редактор делает ровно то, чего я от него хочу. Круче только нейроинтерфейс, наверное.

У Раскина я прочёл "режимы — плохо, квазирежимы — туда-сюда". Допустим. Предложите текстовый редактор без режимов. ЕМНИП, при жизни и участии Раскина, а так же в течении нескольких лет после его смерти, у команды программистов Raskin Center for Humane Interfaces эту задачу решить не получилось — проект заглох на стадии альфы. Получившимся недо-Emacs'ом с квазирежимами оказалось неудобно пользоваться. https://en.wikipedia.org/wiki/Archy
Есть ещё ссылки?

Нет с вимом таких проблем. Текущий режим считывается одним взглядом в левый нижний угол.


image

Шутка в том, что IDE (и большинство редакторов) вы открываете и 95% времени проводите в режиме ввода текста (если вы нажмёте на клавишу, то в текст добавится новый символ). Vim сразу открывается в режиме навигации, и он в нём силён.

Даже пользователи обычной Visual Studio немного обиделись, которая штук семь языков поддерживает «из коробки» и ещё немало с помощью сторонних плагинов.

В vim из коробки 500+ файлов синтаксиса =) Мне их столько не надо, но на какой язык\синтаксис бы меня не забросила работа — всё или уже есть, или легко скачать и доставить — C, C++, Bash, Python, Perl, PHP, Javascript, HTML, XML, Yaml, ini-файлы, error-файлы — это я пробовал сам.

Для такого иногда можно посоветовать всё же дополнение

Да, дополнение лучше велосипедов. Команда только для демонстрации лёгкой расширяемости vim, это ни в коем случае не эталонное решение.


PS: Не нужно говорить

Спасибо.
Errata: "большинство сочетаний клавиш в различных режимах" =)


вы знаете, что у YouCompleteMe

Нет, из дополнений у меня только slime.

Чем Esc + e + i лучше, чем Ctrl+RightArrow?
Ради единственного перемещения нет смысла выходить из режима ввода. Ctrl-o + e(или любая другая команда из нормального режима) и пишем дальше.
Справедливости ради — в режиме ввода все редакторы более-менее одинаковы — нажал на кнопку, появился символ. Прелесть vim в его нормальном режиме.

А ещё можно так


" Мапим Esc в режиме ввода
set inoremap XXX ^[

На месте XXX любой набор символов, который вам удобно набирать и который не встречается в набираемом вами тексте. Традиционные варианты — jj или ;;

Чем Esc + e + i лучше, чем Ctrl+RightArrow?

Например, числовыми модификаторами =)


Сможете переместиться на десять слов вправо, набрав 10Ctrl-RightArrow? (10e)
Сможете быстро удалить весь текст до вхождения следующего символа + в длинной строке? (dt+)
Сможете выделить текст до следующего вхождения слова в файле, не перематывая туда-сюда и не боясь пропустить слово\потерять исходную позицию? Например, выделить с текущей позиции курсора, до слова function, расположенного на N экранов ниже. (v/function)
Сможете повторить предыдущее действие редактирования любой сложности(удаление строки, замена содержимого кавычек) нажатием одной кнопки? (.)

<disclamer>
Vim не IDE, я знаю, но на наших linux-машинах нет ни IDE, ни X-ов, а из mcedit мало что выжмешь, в лучшем случае вызов внешних скриптов из пользовательского меню (я проходил).
</disclamer>
Сможете перейти из файла с ошибками компиляции в нужный файл в строчку, на которой произошла эта ошибка? (gF)
Сможете выполнить любую команду оболочки, не выходя из среды? (:!make)

  1. vim из коробки не ставит закрывающих скобок.
  2. можно повесить любое действие на любое сочетание клавиш в любом режиме. Например, эту задачу можно решить так: если в режиме ввода нажать два раза \, то вставить пару скобок, перейти в командный режим, вместиться на символ влево, вернуться в режим ввода. Комментарий я писал дольше, чем команду.

:inoremap \\ ()^[i

f3 — выделить кусок — f3 — ctrl-f — Enter — перейти в нужное место — shift-f5 — Enter

Даже после :set wrap ?

На старых mc у vim та же проблема — ctrl-o перехватывается.

Статьям про vim не хватает опросника с вариантами типа


  • Я прошёл vimtutor.
  • Я пробовал, но не прошёл vimtutor.
  • Что такое vimtutor?
Вдруг кто не видел докозательство теоремы о крокодиле.
Заголовок спойлера

* - 0 или больше
[:space:] - пробельные символы


Как-то странно перемешаны базовые и продвинутые механизмы регулярок. Я бы отправил "утверждения", "подстановки" и "модификаторы" в конец страницы, они не так часто нужны как всё остальное.

Может у него в .inputrc TAB: menu-complete и Tab он нажал пару раз.

Зачем хранить исходники всей системы (видимо даже солитер там) в одном репозитории?

Масштабирование Git (и кое-какая предыстория)


Когда-нибудь работали с огромной кодовой базой в течение 20 лет? Когда-нибудь пробовали впоследствии вернуться назад и разбить её на маленькие репозитории? Можете догадаться, к какому ответу мы пришли. Этот код очень сложно разобрать на части. Цена будет слишком велика. Риски от такого уровня смешения станут чудовищными.
А если q пивом залило?

:exit (оно же :x ). Опционально !


Если вдруг залип капслок — ZZ или ZQ

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Registered
Activity