Комментарии 123
я лишь описал те, которые сам использовал
А вот за это отдельное спасибо! Теоретики, честно говоря подутомили уже.
А то, бывает, напишешь за день сотню строчек и уже хорошо.
…
Очутившись в патио и увидев перед собой взвод солдат, он провел тыльной стороной руки по глазам, чтобы лучше осознать то, что увидел.
…
Присутствие собратьев по несчастью, тоже полураздетых, вернуло ему самообладание. Когда закончили чтение смертного приговора, он поднял голову, бросил страдальческий взгляд на штыки и что-то сказал, совсем тихо.…
В тот же момент в стенах тюрьмы уже стегал себя собственным эхом голос: «Именем нации!…» Один, два, три четыре, пять, шесть, семь, восемь, девять залпов следовали один за другим. Машинально я отсчитывал их по пальцам. С этой минуты я не могу отделаться от странного чувства, что один палец у меня лишний.
1). Стирается место на пробеле, в которое нажимаешь. Сперва полируется, а потом там возникает ощутимая вдавленность. Но чтобы эффект возник, нужно набрать порядка 10М текста на человеческом языке. За это время уже сменишь клавиатуру, а то и компьютер целиком!
2) При больших объёмах рабочий большой палец таки устаёт! Но большие объёмы — это 5-7 часов набора со скоростью ~300-400 символов в минуту, с небольшими перерывами каждый час. Если вы не зарабатываете синхронным стенографированием гуманитарных лекций, то с этой проблемой не столкнётесь.
Но текст для людей малознакомых с vim звучит шокирующе, т.к. 33 != несколько
Я вам могу обернуть их в один плагин, будете друзьям говорить — Vim легчайший редактор, накатил 1 плагин и у тебя полноценная среда для разработки.
Практика показывает, что такие редакторы лучше изучать "с читого листа"… проще самому добавлять необходимые плагины, чем искать в чужом конфиге то, как сделать ту или иную вещь.
Вместо ctrlp
рекомендую fzf
, он сильно шустрее. Если еще включить в нем ag
для поиска, то будут задействованы исключения из .gitignore
.
А то что то у меня не получилось завести нормально vim с вашим конфигом =)
(http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/)
постоянные перемещения между кавычками, скобками, функциями, блоками кода, поверхностный рефакторинг
я бы добавил и файлами. Без удобной навигации по файлам проще использовать mc+mcedit чем с vim разбираться.
А я вот в свое время перешел с Visual Studio на Emacs, и не хватает мне в нем разве что продвинутой навигации по коду (автокомплит, переходы к объявлению и т.п. в emacs реализованы фигово и судя по всему не могут быть качественно реализованы в связи с однопоточностью самого emacs)… а так возможностей вполне хватает для комфортной работы.
С аскетичными редакторами все так-же, как и с, например, Linux: кто-то постоянно крутит настройки доводя инстурмент до совершенства, а кто-то один раз настраивает и пользуется потому, что удобно. Ну а статьи пишут как раз те, что идейные и используют vim/emacs ради кастомизуемости..
P. S. Имитаторы Vim-управления не предлагать, это слишком просто :)
Начал писать вам ответ-комментарий, но получился ответ-статья.
Со временем мне надоело, что разработчики почти ничего не делают, поставил Atom, потенциально очень крутой редактор, но после недели работы надоела скорость WebView. Поставил Sublime, это были счастливые 2 недели, настроил под себя, все круто, но понял, что хочу большего, умного автокомплита. Да и развитие самого Sublime и его сообщества удручает.
И вот уже месяц на PHPStorm, и тоже не могу представить жизнь без полноценной IDE
Конфиг и необходимые прилагается, может кому будет интересно
github.com/Lucidyan/vpyde3
Мне vim-plug больше по нраву тем, что умеет всякие хуки (типа пересборки либ при обновлении YCM) и условную загрузку плагинов (а у меня их очень много), так что некоторые плагины у меня подгружаются только для определённых типов файлов или при попытке использовать определённые команды.
Возможно кому то пригодится что-то.
Если честно так и не пересел полностью на Vim и в Sublime Text разработка пока быстрее и удобнее получается. Чуть ли не каждый год предпринимаю попытку пересесть на Vim и настраиваю его. В итоге все заканчивается одним и тем же — выкидываю свой vimrc и оставляю дефолтный.
Думаю было бы лучше если бы вы залили свой vimrc на GitHub или Gist.
установить несколько плагинов. Мне хватило 33.
Не пугайте людей.
1. Из коробки он достаточно хорош. На своих многочисленных рабочих местах далеко не всегда отступаю от типовой конфигурации — для небольших изменений кода вполне хватает и дефолтных настроек.
2. В ряде случаев хватает весьма небольшого количества плагинов. По крайней мере у меня их точно намного меньше даже 10 (разработчик на Go), думаю, ближе к 4.
Для комфортной работы с кодом необходимо установить несколько плагинов. Мне хватило 33.
У автора хорошо с чувством юмора. У себя насчитал около 50-и, ну это с учётом разностороннего набора ЯП. Для старта можно и в 10 спокойно уложиться, и постепенно наращивать, по мере ощущения что вот такой-то фичи не достаёт.
Но главное, что меня заинтриговало, — это:
слепой 9-ти пальцевый метод печати.
Что это за метод такой? У автора не достаёт пальца? Очередная шутка? Или действительно есть какой-то такой способ?
Нет такого метода, насколько я знаю, просто считаю, что неправильно называть свою печать 10-ти пальцевой, когда задействованы только 9.
в итоге счёл непрактичным затраты на это дело
По той же причине и я забросил. Думал, что это увеличит мою скорость и снизит количество ошибок, но потом увидел несколько видео топовых клавогонщиков, которые также не использовали правый большой палец, и поубавил свой пыл.
А при типичных программерских объёмах, исчисляемых десятками кб в день или меньше, оно того не стоит.
По теме https://www.reddit.com/r/vim/comments/4l93l0/dat_moment_when_you_customize_vim/
Огромное количество народа не замечают что их zsh грузится по 5 секунд на каждое открытие таба (oh-my-zsh и autozsh), а я когда вижу больше 200ms загрузки начинаю профилировать.
Так что это дело привычки, наверное.
Ctags создает тег-файл, в котором содержатся названия классов, функций, переменных, ..., а также их позиции.
Стоит заметить, что ctag не делает семантического анализа, а тупо расставляет теги на все встреченные совпадения. Т.ч. частенько grep'ом быстрее получается по коду ходить, чем ctag'ом…
Суть в том, что клавиши IJKL (стандартные для QWERTY клавиатуры) с нажатым LAlt работают как стрелки в играх WASD, U/O — Home/End, M/, — Backspace/Delete. Под катом пример на Autohotkey
Скрытый текст;;;
;;; Right alt tabs
;;;
*>!Tab::SendInput ^{Tab}
*+>!Tab::SendInput +^{Tab}
;;;
;;; Arrows
;;;
*
; Alt + Shift +…
+
+
+
+
+
+
+
+
; Alt + Win +…
#
#
#
#
#
#
#
#
; Alt + Ctrl +…
; Alt + Alt right +…
!u::SendInput !{Up}
!n::SendInput !{Left}
!e::SendInput !{Down}
!o::SendInput !{Right}
!p::SendInput !{End}
!f::SendInput !{Home}
!b::SendInput !{Delete}
!l::SendInput !{Backspace}
+
+
+
+
+
+
+
+
+!u::SendInput +!{Up}
+!n::SendInput +!{Left}
+!e::SendInput +!{Down}
+!o::SendInput +!{Right}
+!p::SendInput +!{End}
+!f::SendInput +!{Home}
+!b::SendInput +!{Delete}
+!l::SendInput +!{Backspace}
!^u::SendInput ^!{Up}
!^n::SendInput ^!{Left}
!^e::SendInput ^!{Down}
!^o::SendInput ^!{Right}
!^p::SendInput ^!{End}
!^f::SendInput ^!{Home}
!^b::SendInput ^!{Delete}
!^l::SendInput ^!{Backspace}
+!^u::SendInput +!^{Up}
+!^n::SendInput +!^{Left}
+!^e::SendInput +!^{Down}
+!^o::SendInput +!^{Right}
+!^p::SendInput +!^{End}
+!^f::SendInput +!^{Home}
+!^b::SendInput +!^{Delete}
+!^l::SendInput +!^{Backspace}
Немного избыточно, но по какой-то причине на моём Thinkpad не работает wildcard оператор и пришлось написать то, что есть. Да я и сильно не пытался оптимизировать, оставил первую рабочую версию и забыл (уже почти год работает без багов).
Ещё и поделюсь скриншотом раскладки, а это состояние с shift. Стоит заметить, что на месте CapsLock у меня CTRL, а на месте CTRL — RAlt.
Кто-то обязательно скажет «Зачем это возня, поставил Vim и нет проблем» — я и не спорю! Но у моего подхода есть преимущество — эти хоткеи работают и во всех других приложениях. A в комбинации с трекпадом на моём Thinkpad — дают полную свободу от мышки, на все 100%, даже при работе с браузером. Эти хоткеи работают и в Vim.
К слову в Karabiner есть готовая опция использования Vim-подобных хоткеев на уровне системы.
2. Я не могу редактировать свой первый комментарий к посту (так как он уходит на модерацию), к сожалению. Автор может удалить текущий поломанный и я его опубликую заново.
3. Чтобы не шалить с парсером, пример залил на pastebin
Вообще для написания кода использую Geany(даже и незнаю как у vim'а с питоном) благодая удобному автокомплиту, быстрой подсветкой(заслуга scintilla) и очень низким потреблением ресурсов.
Но после скриншота в этой статье я польщен, очень симпатично, думаю можно поюзать для пыхи.
А есть плагин для дин. подгрузки функций/классов из инклюжнов?
def myfunction():
print "Hello, world!"
а в автодополнении появился вариант «myfunction» и его список аргументов.
хабрапарсер порезал табуляцию
Думается, что и с питоном всё нормально, но, боюсь, вам придется погуглить на это счет или установить несколько плагинов самому на тот случай, если простой установки youcompleteme будет недостаточно, так как с питоном я вообще не знаком.
Вот еще полезная ссылка, удачи.
Бессовестно порекламирую свой конфиг =)
Я тоже так думал, но оно как то само отмирает. Vim все чаще для меня — хорош и без плагинов.
На счет Ctrl+P
плагина. Он хороший и по этому он все еще установлен у меня. Он даже расширен более быстрым поиском и доп. функциями. Но есть альтернатива в виде ack
или grep
, с ними бывает быстрее.
Есть печальная история с "улучшенными поддержками языка". Например vim-javascript
тормозит работу Vim если работаешь с файлами в 150000 строк. А мне приходится такие, как минимум, просматривать.
NerdTree мне тоже оказался не по нраву, простой netrw из коробки для меня удобнее. А вот Syntastic для меня маст хэв.
С syntastic
все хорошо, :) но его заменили обычные cli утилиты запускаемые в нужное мне время. Так уж устроен рабочий флоу. Отпал за ненадобностью
Например vim-javascript тормозит работу Vim если работаешь с файлами в 150000 строк
Как по мне, это не повод отказываться от постоянных удобств в угоду очень редким правкам. Возможно, стоит отключить загрузку плагина в рантайм на время работы с таким файлом, или, выставить в буфере неизвестный тип файла, чтобы не работала подсветка.
Вообще, я согласен с тем, что vim из коробки я знаю достаточно плохо. Мне хотелось сделать работу в vim'е более комфортной, неважно достигается это за счет плагинов или настройки самого vim'а. Более того, само наличие плагина наводит на мысль, что из коробки vim такое не умеет или умеет хуже, и у меня не было никаких оснований думать иначе. Если вы знаете еще какие-нибудь команды, касательно статьи, вроде стандартного файлового менеджера, пожалуйста, напишите.
vim scp://server.ru//var/www/host/file.txt
после сохранения слетает подсветка синтаксиса. Закрытие и открытие файла редактируемого синтаксис восстанавливается. Подскажите кто с подобным сталкивался как можно обойти ошибку? Со временем дискомфорт уходит и если удастся обойти эту сложность вим имеет большие шенсы стать основным редактором. Во всяком случае все, что мне не хватало в редакторе я в нем нашел. Работаю на ubuntu mate
Нередко люди в виме постоянно пребывают в режиме редактирования текста и используют стрелки для навигации.
Вы уже пользуетесь режимами, или делаете в режиме редактирования всё?
set number
set tabstop=3
set softtabstop=0
set shiftwidth=3
set autoindent
set smartindent
set noexpandtab
set list
set listchars=tab:▸\ ,eol:¬
set encoding=utf8
set filetype=php
syntax on
au BufRead,BufNewFile *.tpl set filetype=php
~ VIM — Vi IMproved (улучшенный Vi)
~
~ версия 7.4.1689
~ Брам Мооленаар и другие
Вот типичный кейс: забыл аргументы метода. Вот IDEA может подтянуть докстринги из метода, и выдать удобную такую подсказку, а не просто список аргументов. Все что я нашел в vim'е для этого — ну даже близко не то. А я на минуточку использовал его лет 5-6.
Средства работы с БД — сомнительные. Когда у тебя под сотню табличек со сложными связями, держать это в голове без возможности преобразовать все это в графический вид в каком либо виде. Без этого — это всё детские шалости.
Про средства отладки так вообще не слова, а это ну офигеть как важно.
Если начать копаться — вообще ничего не написано про то как сделать vim удобным для людей, которые пишут серьезные большие проекты. Так, для небольших pet-project.
Тут ещё столько же плагинов надо для того чтобы можно было нормально и быстро писать.
Если начать копаться — вообще ничего не написано про то как сделать vim удобным для людей, которые пишут серьезные большие проекты.
Если бы всё было так просто, то ide никто бы уже давно не использовал. Вам не понравилось, а кто-то оценит статью, попробует редактор и, возможно, будет использовать для своих «pet-project'ов» или для правки конфигов, ведения заметок и всего прочего. Впрочем, вы всегда можете написать статью о своем видении работы с vim'ом.
и если без таких вещей невозможно обойтись, то целесообразнее использовать ide.
Как правило, возможно (чего уж там, можно и sed'ом, например, редактировать файлы). Но не удобно.
Если бы всё было так просто, то ide никто бы уже давно не использовал.
Даже если когда-нибудь из vim получится сделать полноценную IDE, то то это просто будет ещё одна IDE.
Даже если когда-нибудь из vim получится сделать полноценную IDE, то то это просто будет ещё одна IDE.
Не совсем еще одна. IDE не поддерживает множество языков, в отличие от vim'а. Но это всё мечты.
P.S. Первое «большинство» точно употребляю из осторожности.
Немного не так. У них есть флагманский продукт Idea, на который предустановлен плагин для Java (из основнsх) и можно установить туда же PHP, Python, Ruby… и есть отдельные продукты (более дешевые) для каждого из этого языков c предустановленным соответствующим плагином, на которые другие основные языки установить нельзя. Но это лишь политика лицензирования: хочешь несколько основных языков в одной IDE — покупай флагманский продукт, не хочешь — покупай отдельные. Вроде флагманский стоит дешевле чем любые два отдельно, но не уверен.
Опыт перехода с Sublime на Vim