Как стать автором
Обновить

Комментарии 123

НЛО прилетело и опубликовало эту надпись здесь
Эх, когда же у меня скорость набора текста будет узким местом? :(
А то, бывает, напишешь за день сотню строчек и уже хорошо.
Верно лишь отчасти. Быстрее печатаешь => чаще пробуешь варианты => чаще получаешь результат => быстрее получаешь опыт => быстрее прокачиваешь скилл.
Так что, скорость печати поднимать никогда не рано.
А что за беда случилась с вашим десятым пальцем?
Говорят, новый можно отрастить, пользуясь Emacs.
У меня тоже выходит 9-ти пальцевый. Я пробел только одним большим пальцем жму.
Вспомнился эпизод из
'Сеньор Президент' Мигеля Анхеля Астуриаса
«Многоуважаемая сеньора, – начала она читать вслух другое анонимное письмо, – я узнал от одного из своих друзей, что в ночь расстрела вашего мужа вы стояли, прижав ухо к стене тюрьмы, и считали выстрелы – девять выстрелов за стеной, – но не знаете, какой из них вырвал из мира живых лиценциата Карвахаля, богом благословенного. Под вымышленным именем, – в наше время не доверишься бумаге, – и после долгих колебаний, как бы не причинить вам боль, я все же решился сообщить, что об этом знаю, так как был свидетелем кровавой расправы.

Очутившись в патио и увидев перед собой взвод солдат, он провел тыльной стороной руки по глазам, чтобы лучше осознать то, что увидел.

Присутствие собратьев по несчастью, тоже полураздетых, вернуло ему самообладание. Когда закончили чтение смертного приговора, он поднял голову, бросил страдальческий взгляд на штыки и что-то сказал, совсем тихо.…
В тот же момент в стенах тюрьмы уже стегал себя собственным эхом голос: «Именем нации!…» Один, два, три четыре, пять, шесть, семь, восемь, девять залпов следовали один за другим. Машинально я отсчитывал их по пальцам. С этой минуты я не могу отделаться от странного чувства, что один палец у меня лишний.
читал и долго не мог понять, к чему это всё, пока не дочитал до конца :)
Пока не смог приучить свой правый большой палец нажимать на пробел.
Меня даже Шахиджанян приучить не смог (но левый). Пока набирал в основном тексты на человеческих языках — ещё худо-бедно думал, с какой стороны последний символ перед пробелом. Особо мозг выносили знаки препинания, они где-то ниже сознания. К автоматизму даже не приблизился. А потом в какой-то момент прыгать перестал, когда заметил — было уже поздно. Вообще, при всём том, что слепой десятипальцевый метод избавляет от необходимости думать — а каким бы пальцем нажать t, например, кошерность прыгания по пробелу выглядит дикостью. С точки зрения здоровья рук полезно, пожалуй, но не более. Что характерно, левый большой при этом без дела не остаётся — Alt зажимает, Mod4, иногда также Fn и Ctrl вместо мизинца. Правый же кроме пробела жмёт только AltGr (переключение раскладки). ДА, КАПс я юзАЮ ПО назначЕНИЮ.
А как вам набирать «Ф» или «A» латинскую? Для меня самая боль — нажать на правый shift мизинцем правой руки. Приходится либо смещать правую руку, либо нажимать на краешек кнопки. Клавиатура у меня мембранная, часто «съедает» нажатие.
В случае с далёкими и не очень клавишами растягиваю пальцы гармошкой. Указательный так обычно остаётся на месте.
У 9-пальцевого перед 10-пальцевым есть пара недостатков, но они достаточно несущественные.
1). Стирается место на пробеле, в которое нажимаешь. Сперва полируется, а потом там возникает ощутимая вдавленность. Но чтобы эффект возник, нужно набрать порядка 10М текста на человеческом языке. За это время уже сменишь клавиатуру, а то и компьютер целиком!
2) При больших объёмах рабочий большой палец таки устаёт! Но большие объёмы — это 5-7 часов набора со скоростью ~300-400 символов в минуту, с небольшими перерывами каждый час. Если вы не зарабатываете синхронным стенографированием гуманитарных лекций, то с этой проблемой не столкнётесь.
Для стенографирования, к слову, есть специальный аккордный метод ввода. К нему в идеале клавиатура специальная нужна, но для тренировки и повседневного использования можно и на кверти. Вот свободная реализация, например.
НЛО прилетело и опубликовало эту надпись здесь
В том же Atom по умолчанию уже установлена целая куча плагинов, всё отличие только в том что здесь после установки их вообще нет.
> В том же Atom по умолчанию уже установлена целая куча плагинов

Разница в том, что всё это дело установлено из коробки и является плагинами по совсем другой причине, нежели в виме.
Но текст для людей малознакомых с vim звучит шокирующе, т.к. 33 != несколько

Я вам могу обернуть их в один плагин, будете друзьям говорить — Vim легчайший редактор, накатил 1 плагин и у тебя полноценная среда для разработки.
Всё зависит от ваших потребностей. Мне вот нужно 33, кому-то нужно меньше. Вообще, я хотел облегчить людям, не знакомым с vim'ом, переход на этот редактор, предоставив им весь набор инструментов, которые они привыкли видеть в других редакторах. С минимальными усилиями получить среду для разработки, а уже потом решить надо оно им или нет. Ведь мало у кого есть желание тратить дни на допиливание редактора, когда сроки поджимают.
Вы предлагаете людям переходить на Vim когда у них сроки поджимают? Вас не Люцефером звать?
Предлагаю людям поиграться с редактором, а дальше решить, нужен он им или нет.
Сроки всегда поджимают, поэтому выделить неделю-две на базовую настройку редактора параллельно с обучением работы в нём мало кто может себе позволить, а вот если уже настроен, то времени займёт гораздо меньше.

Практика показывает, что такие редакторы лучше изучать "с читого листа"… проще самому добавлять необходимые плагины, чем искать в чужом конфиге то, как сделать ту или иную вещь.

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

Вместо ctrlp рекомендую fzf, он сильно шустрее. Если еще включить в нем ag для поиска, то будут задействованы исключения из .gitignore.

Спасибо, попробую.
Зашёл написать про FZF, он действительно того стоит.
Его кстати ещё и в BASH/ZSH/Fish можно использовать вместо Ctrl-R и по Ctrl-T искать с помощью Fuzzy Search.
Полные конфиги залейте на gist.github.com (возможно парсер что-то скушал)
А то что то у меня не получилось завести нормально vim с вашим конфигом =)
.vimrc

По-идее, не должен был, код был в «pre». Какие-нибудь ошибки есть при вылете?
НЛО прилетело и опубликовало эту надпись здесь
Предполагается, что читатель знаком с основными движениями. Это ведь первое, что привлекает внимание, когда человек знакомится с vim'ом. По крайней мере, у меня так было.
Я бы еще посоветовал Learn Vim Progressively, как наглядное пособие для плавного перехода с обычного редактора.
(http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/)
постоянные перемещения между кавычками, скобками, функциями, блоками кода, поверхностный рефакторинг

я бы добавил и файлами. Без удобной навигации по файлам проще использовать mc+mcedit чем с vim разбираться.
НЛО прилетело и опубликовало эту надпись здесь
Да нет сложных взаимосвязей — обычные для PHP. Другое дело, что регулярками их сложно анализировать — такой уж синтаксис, например
<?php
namespace A\B\C;

use A\D\E as F;

$obj = new F;

И с последней строки очень хочется перейти на файл ../../D/E.php, где строки class F нет.
Для удобной навигации по файлам есть ctrlp, ctags и переход к тегу. Или нужно что-то еще?
например в return $i; перейти к классу A, исходник которго лежит в /usr/lib, экземпляром которого $i «создаётся» в цикле /** var A[] $arr */ foreach($arr as $i) {...}
НЛО прилетело и опубликовало эту надпись здесь
Да ладно, не только ваше.

А я вот в свое время перешел с Visual Studio на Emacs, и не хватает мне в нем разве что продвинутой навигации по коду (автокомплит, переходы к объявлению и т.п. в emacs реализованы фигово и судя по всему не могут быть качественно реализованы в связи с однопоточностью самого emacs)… а так возможностей вполне хватает для комфортной работы.

А разве lsp-mode не решает эти проблемы в emacs?

Аналогично. Кто хочет — пусть ковыряется с 33 плагинами и теряет скорость ради призрачной «свободы», а мы пока дело делать будем. Сколько статей про настройку VIM не читал, везде вижу только «я поставил 100500 плагинов чтобы повторить редактор N» и нигде «моя производительность выросла в 3 раза за счёт фичи N, которая есть только в VIM».

С аскетичными редакторами все так-же, как и с, например, Linux: кто-то постоянно крутит настройки доводя инстурмент до совершенства, а кто-то один раз настраивает и пользуется потому, что удобно. Ну а статьи пишут как раз те, что идейные и используют vim/emacs ради кастомизуемости..

НЛО прилетело и опубликовало эту надпись здесь
Моя производительность выросла в 3 раза благодаря normal mode, UltiSnips и vim_templates, которые есть только в Vim.
Поздравляю вас, даже несмотря на то, что сниппеты и шаблоны есть в любой IDE, а в некоторых ещё и VIM-овская навигация присутствует.
Вы правда хотите об этом со мной посморить? )
Спасибо, я своё отхоливарил. Я не отрицаю (хотя бы из соображений экономии времени), что некоторых ситуациях VIM может быть мощнее, чем всё остальное, но предлагаю задуматься, стоит ли игра свеч. Выросла ли производительность в абсолютных значениях или только в относительных (т.е., что было бы, если бы вы взяли готовую IDE и всё потраченное на VIM время использовали для совершенствования своего программистского скилла)?
Я же говорю — моя производительность выросла в 3 раза.
Вы машинисткой работате? В 3 раза! А думаете о коде вы когда?
НЛО прилетело и опубликовало эту надпись здесь
Править конфиги можно научиться за час или два, а чтобы «один раз изучить VIM» времени нужно, скажем так, «чуть больше».

По поводу IDE vs VIM смотрите ниже

Плагин написать?
Ошибка: плагин для открытия двери в туалет конфликтует с плагином контроля кипения чайника. Бида-бида, теперь придётся это всё руками делать! Хотя нет, на такой случай где-то валялся плагин для контроля открытия крышки чайника, можно попробовать приспособить… да ну в баню, мне же работать надо — лучше руками. И так годами…

Начал писать вам ответ-комментарий, но получился ответ-статья.

Я долго в последнее время прыгал с редактора на редактор. Долгое время работал в Coda (Mac OS only)
Со временем мне надоело, что разработчики почти ничего не делают, поставил Atom, потенциально очень крутой редактор, но после недели работы надоела скорость WebView. Поставил Sublime, это были счастливые 2 недели, настроил под себя, все круто, но понял, что хочу большего, умного автокомплита. Да и развитие самого Sublime и его сообщества удручает.
И вот уже месяц на PHPStorm, и тоже не могу представить жизнь без полноценной IDE
В свое время накидал sh скрипт, для разворачивания vim, как IDE для разработки на python3 (в репозитории был только с поддержкой python2)
Конфиг и необходимые прилагается, может кому будет интересно
github.com/Lucidyan/vpyde3

Мне vim-plug больше по нраву тем, что умеет всякие хуки (типа пересборки либ при обновлении YCM) и условную загрузку плагинов (а у меня их очень много), так что некоторые плагины у меня подгружаются только для определённых типов файлов или при попытке использовать определённые команды.

Пара слов про мой конфиг Vim — https://hmdw.me/vim/#more
Возможно кому то пригодится что-то.

Если честно так и не пересел полностью на Vim и в Sublime Text разработка пока быстрее и удобнее получается. Чуть ли не каждый год предпринимаю попытку пересесть на Vim и настраиваю его. В итоге все заканчивается одним и тем же — выкидываю свой vimrc и оставляю дефолтный.

Думаю было бы лучше если бы вы залили свой vimrc на GitHub или Gist.
Первое, что необходимо понять — vim из коробки годится разве что для правки конфигов, для комфортной работы с кодом необходимо
установить несколько плагинов. Мне хватило 33.

Не пугайте людей.

1. Из коробки он достаточно хорош. На своих многочисленных рабочих местах далеко не всегда отступаю от типовой конфигурации — для небольших изменений кода вполне хватает и дефолтных настроек.
2. В ряде случаев хватает весьма небольшого количества плагинов. По крайней мере у меня их точно намного меньше даже 10 (разработчик на Go), думаю, ближе к 4.
Шпаргалку по временам на англ в студию!
Уверяю вас, там нет ничего интересного.
Для комфортной работы с кодом необходимо установить несколько плагинов. Мне хватило 33.

У автора хорошо с чувством юмора. У себя насчитал около 50-и, ну это с учётом разностороннего набора ЯП. Для старта можно и в 10 спокойно уложиться, и постепенно наращивать, по мере ощущения что вот такой-то фичи не достаёт.

Но главное, что меня заинтриговало, — это:
слепой 9-ти пальцевый метод печати.

Что это за метод такой? У автора не достаёт пальца? Очередная шутка? Или действительно есть какой-то такой способ?
Похоже, вы единственный, кто заметил тут шутку) Ну ладно, не все шутки хорошие.

Нет такого метода, насколько я знаю, просто считаю, что неправильно называть свою печать 10-ти пальцевой, когда задействованы только 9.
Имеется в виду, что не используется правый большой палец? Я вот иногда использую, хоть и очень редко, несмотря на то что пытался вытренировать рефлекс перекрёстного нажатия, когда перед этим символ был на другую руку, в итоге счёл непрактичным затраты на это дело. Мой метод печати в таком случае наверное можно назвать 9,5-пальцевым, вот это каламбур!
в итоге счёл непрактичным затраты на это дело

По той же причине и я забросил. Думал, что это увеличит мою скорость и снизит количество ошибок, но потом увидел несколько видео топовых клавогонщиков, которые также не использовали правый большой палец, и поубавил свой пыл.
Тренировать этот рефлекс имеет смысл если приходится набирать МНОГО текста. Скажем, от 200К в день. Тогда рабочий палец начинает под конец уставать, а нерабочий — наоборот, ныть и затекать (из-за того, что его непроизвольно оттопыриваешь, чтобы не мешался).

А при типичных программерских объёмах, исчисляемых десятками кб в день или меньше, оно того не стоит.
Полезный набор плагинов. А метод в общем случае все-таки 10-ти пальцевый, просто на пробел большинство людей чаще (но не всегда) нажимают либо левым большим пальцем, либо правым. Хотя скорость печати в программировании не самое узкое место )) Кстати, на гиктаймсе была занятная статья о скорости набора — geektimes.ru/post/270858
Не могу не согласиться, скорость печати — дело третье, это помогает разве что в чатиках каких-нибудь изьясняться, чтобы текст поспевал за мыслью. А вот рефлексы каких-нибудь комплексных команд в редакторе — полезный навык, и вим предоставляет кучу возможностей для этого. Многих отталкивают всякие 5-и ступенчатые комбо, но когда они словно сами отбиваются в burst mode, — давление рутины ощущается меньше.
Когда я начинал знакомиться с Vim тоже начинал с около 30 плагинов. Каждые полгода потом приходилось уделять кучу времени на то, чтобы искать из-за какого плагина опять все тормозит. В итоге пришел обратно к 6 плагинам и просто своим очень простым настройкам над Vim.

По теме https://www.reddit.com/r/vim/comments/4l93l0/dat_moment_when_you_customize_vim/
Тормоза в загрузке или в работе с редактором? Из всех плагинов заметно замедляют загрузку только 2: youcompleteme и session. В самой работе лагов никаких не замечаю, пока всё устраивает.
И то и то. Помню много проблем было с pymode и со всякими анализаторами кода.
> В самой работе лагов никаких не замечаю, пока всё устраивает.

Огромное количество народа не замечают что их zsh грузится по 5 секунд на каждое открытие таба (oh-my-zsh и autozsh), а я когда вижу больше 200ms загрузки начинаю профилировать.

Так что это дело привычки, наверное.
Просто вы сделали акцент на количестве плагинов, и что причина тормозов в этом. Если отключить те 2 плагина, о которых я писал, то vim загружается почти также быстро, как и в «голом» состоянии. Тут либо отказываться от функционала, либо терпеть. Мне, например, гораздо проще подождать 0.5с, пока восстановится прежняя сессия, чем открывать все файлы, с которыми я работал, а ведь там и положение курсора восстанавливается и много чего еще. Я не уверен, будет ли оно ощутимо быстрее работать, если использовать стандартные команды vim'a (:mksession), но вопросом оптимизации, скорее всего, займусь позже.
Ctags создает тег-файл, в котором содержатся названия классов, функций, переменных, ..., а также их позиции.


Стоит заметить, что ctag не делает семантического анализа, а тупо расставляет теги на все встреченные совпадения. Т.ч. частенько grep'ом быстрее получается по коду ходить, чем ctag'ом…
Понимаю автора поста. Около года создал себе собственную раскладку клавиатуры на основании Workman и изучил с ней слепую печать. На Vim перейти так и не решился но чувство неполноценности от прерывания к мышке не давало покоя. В итоге сделал себе хоткеи перемещения на Autohotkey в Windows и на Karabiner в OSX.
Суть в том, что клавиши 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-подобных хоткеев на уровне системы.
Спрячьте под спойлер, пожалуйста.
1. При публикации код был под спойлером, в предпросмотре отображался нормально (видимо <pre>/<source> не хватило и парсер сломался)
2. Я не могу редактировать свой первый комментарий к посту (так как он уходит на модерацию), к сожалению. Автор может удалить текущий поломанный и я его опубликую заново.
3. Чтобы не шалить с парсером, пример залил на pastebin
Использвоал Vi(не Vim) когда настраивал ppp на freebsd.
Вообще для написания кода использую Geany(даже и незнаю как у vim'а с питоном) благодая удобному автокомплиту, быстрой подсветкой(заслуга scintilla) и очень низким потреблением ресурсов.
Но после скриншота в этой статье я польщен, очень симпатично, думаю можно поюзать для пыхи.
А есть плагин для дин. подгрузки функций/классов из инклюжнов?
У vim'a с питоном всё хорошо, посмотрите тут.

А есть плагин для дин. подгрузки функций/классов из инклюжнов?

Речь про автокомлит?
Да, как к примеру в GUI редакторах задефайнил функцию:
def myfunction():
print "Hello, world!"

а в автодополнении появился вариант «myfunction» и его список аргументов.
хабрапарсер порезал табуляцию
Youcompleteme умеет в семантику. К примеру, в php можно писать так

image

Думается, что и с питоном всё нормально, но, боюсь, вам придется погуглить на это счет или установить несколько плагинов самому на тот случай, если простой установки youcompleteme будет недостаточно, так как с питоном я вообще не знаком.

Вот еще полезная ссылка, удачи.
Выложили бы свой конфиг vim'а — скачал и поставил. Настаивать влом, но к vim'у тяготею.
А чем не устраивает тот, что я поместил под спойлер ".vimrc целиком" в конце статьи? И в комментариях я выкладывал код на github, вот, пожалуйста.
спасибо парни
У меня был подобный опыт перехода. Был похожий vim конфиг. Было время когда держал конфиг Sublime Text вместе в vim. Совсем недавно удалил все про саблайм. Но со временем и большим изучением vim, я начал избавляться плагинов, что никак не ухудшало работу с vim. Вот тут можно посмотреть иторию коммитов voischev/dotfiles Надеюсь кому то будет полезно
Не понял вас. Как без плагинов можно пользоваться fuzzy поиском по файлам? Как работать с деревом каталога или получить (улучшенную) поддержку определенного языка? Я согласен с тем, что от некоторых плагинов, вроде surround или tabular, можно отказаться, но далеко не от всех. Я к тому, что плагины создаются для того, чтобы облегчить жизнь и тут либо писать нужный функционал с нуля, либо использовать готовое.

Я тоже так думал, но оно как то само отмирает. Vim все чаще для меня — хорош и без плагинов.


На счет Ctrl+P плагина. Он хороший и по этому он все еще установлен у меня. Он даже расширен более быстрым поиском и доп. функциями. Но есть альтернатива в виде ack или grep, с ними бывает быстрее.


Есть печальная история с "улучшенными поддержками языка". Например vim-javascript тормозит работу Vim если работаешь с файлами в 150000 строк. А мне приходится такие, как минимум, просматривать.

Посмотрел историю изменений. Допустим, fugitive можно удалить и работать напрямую с git, но чем вы заменили nerdtree и syntastic?

NerdTree мне тоже оказался не по нраву, простой netrw из коробки для меня удобнее. А вот Syntastic для меня маст хэв.

Спасибо, не знал про ":e.". Возможно, со временем тоже откажусь от NerdTree.

Да. Можно еще :Ex или :Sex. У NERDTree свои недостатки. Мне не удобно в нем работать в проектах с большим количеством вложенных папок и длинными названиями файлов, как бы я его не настраивал.

Или :Vex

С syntastic все хорошо, :) но его заменили обычные cli утилиты запускаемые в нужное мне время. Так уж устроен рабочий флоу. Отпал за ненадобностью

Странный вы) Разве не удобнее, когда ошибка всплывает сразу, когда в памяти еще хранятся детали реализации и вносить изменения проще всего, а не через несколько часов/вечером (или как там у вас процесс настроен)?

Например vim-javascript тормозит работу Vim если работаешь с файлами в 150000 строк

Как по мне, это не повод отказываться от постоянных удобств в угоду очень редким правкам. Возможно, стоит отключить загрузку плагина в рантайм на время работы с таким файлом, или, выставить в буфере неизвестный тип файла, чтобы не работала подсветка.

Вообще, я согласен с тем, что vim из коробки я знаю достаточно плохо. Мне хотелось сделать работу в vim'е более комфортной, неважно достигается это за счет плагинов или настройки самого vim'а. Более того, само наличие плагина наводит на мысль, что из коробки vim такое не умеет или умеет хуже, и у меня не было никаких оснований думать иначе. Если вы знаете еще какие-нибудь команды, касательно статьи, вроде стандартного файлового менеджера, пожалуйста, напишите.
Третий день набиваю навыки работы с вимом. Обнаружил очень неприятную ошибку которую не знаю как исправить. После редактирования на удаленном сервере слабым местом оказывается сеть проявляя себя в регулярных задержках. При попытке открыть файл по ssh

vim scp://server.ru//var/www/host/file.txt

после сохранения слетает подсветка синтаксиса. Закрытие и открытие файла редактируемого синтаксис восстанавливается. Подскажите кто с подобным сталкивался как можно обойти ошибку? Со временем дискомфорт уходит и если удастся обойти эту сложность вим имеет большие шенсы стать основным редактором. Во всяком случае все, что мне не хватало в редакторе я в нем нашел. Работаю на ubuntu mate
Маленький вопрос. А чего вам не хватало в редакторе?
В обычном? До этого я долго использовал kwrite потом kate отличные редакторы. Не все сделаешь только с клавиатуры. Есть функции, которые требуют дотягиваться до мышки и перемещать курсор по экрану. Не хватает также возможности написать сценарий. В некоторые моменты простой сценарий может сэкономить часы работы. Нашел для себя отличную возможность открытия двух окон на одном экране :sp и :wsp ни один из используемых мной до этого редакторов такого не позволял. Прав был написавший ранее комментатор — разобравшись один раз возможности расширяются на всю оставшуюся жизнь.
Насколько я понимаю возможности у вима примерно такие же, как у любого другого продвинутого текстового редактора с возможностью писать плагины. Что в виме реально круто — так это нормальный режим, режим редактирования и режим выделения и то, что можно делать с их помощью.
Нередко люди в виме постоянно пребывают в режиме редактирования текста и используют стрелки для навигации.
Вы уже пользуетесь режимами, или делаете в режиме редактирования всё?
Я ползуюсь режимами. Сложно представить ситуацию в которой можно отказаться от использования режимов. Я записывал сценарии. Попробовал. Очень понравилось. Даже сформировал для себя методику в которой будет оставаться сессия между домом и работой. Сервер перезагружается редко и я открываю вим в скрине $screen -S vim. Осваиваю другие возможности. Пока доволен функционалом редактора.
Не смог воспроизвести баг, у меня тема не слетает. Но vim создает временный файл, а потом загружает его на сервер. Возможно, после первого сохранения, он пытается работать с этим файлом? Файл сохраняется в /tmp/vIhh6rh/4. Но вообще, это довольно бредово звучит. Может имеет смысл скопировать конфиг на удаленный сервер и работать на нем? Если, конечно, их не десятки. Либо монтировать директорию.
Серверов не десятки. Возможно четыре — пять. Копирование конфига как правило не представляет трудностей. Сложность которую ощутил при работе на сервере это задержки в интернете. Реакция редактора на горячие клавиши становится заметно дольше, ведь работа идет по сети. Как на работе так и дома сеть достаточно загружена и провалы в сети частое явление. Вот и подумал что открытие по scp было бы для меня лучшим решением. Возможно это связано с нестандартным расширением файлов? В конфигурационном файле я изменил расцветку файлов с расширением *.tpl на схему php возможно с этим связано. Вот настройки моего ~/.vimrc

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 последней версии стоит?
Описана пачка плагинов, но про реально полезные вещи не описано. Например, про настройки самого вима. У него ведь дофига настроек, и по-умолчанию они не всегда оптимальны и удобны.

Вот типичный кейс: забыл аргументы метода. Вот IDEA может подтянуть докстринги из метода, и выдать удобную такую подсказку, а не просто список аргументов. Все что я нашел в vim'е для этого — ну даже близко не то. А я на минуточку использовал его лет 5-6.
Средства работы с БД — сомнительные. Когда у тебя под сотню табличек со сложными связями, держать это в голове без возможности преобразовать все это в графический вид в каком либо виде. Без этого — это всё детские шалости.
Про средства отладки так вообще не слова, а это ну офигеть как важно.

Если начать копаться — вообще ничего не написано про то как сделать vim удобным для людей, которые пишут серьезные большие проекты. Так, для небольших pet-project.

Тут ещё столько же плагинов надо для того чтобы можно было нормально и быстро писать.
Есть мнение, что делать из vim'a ide некорректно и, скорее всего, невозможно. Некоторые вещи, если и можно сделать, то в урезанном виде, и если без таких вещей невозможно обойтись, то целесообразнее использовать ide.

Если начать копаться — вообще ничего не написано про то как сделать vim удобным для людей, которые пишут серьезные большие проекты.

Если бы всё было так просто, то ide никто бы уже давно не использовал. Вам не понравилось, а кто-то оценит статью, попробует редактор и, возможно, будет использовать для своих «pet-project'ов» или для правки конфигов, ведения заметок и всего прочего. Впрочем, вы всегда можете написать статью о своем видении работы с vim'ом.
Vim для конфигов — огонь. Быстро поправить что-нибудь в продакшене — тоже огонь. Тут даже спорить не буду. Я к таким статьям отношусь как к очередной попытке сделать IDE из Vim. Поэтому извиняюсь за возможную излишнюю резкость.
и если без таких вещей невозможно обойтись, то целесообразнее использовать ide.

Как правило, возможно (чего уж там, можно и sed'ом, например, редактировать файлы). Но не удобно.
Если бы всё было так просто, то ide никто бы уже давно не использовал.

Даже если когда-нибудь из vim получится сделать полноценную IDE, то то это просто будет ещё одна IDE.
Даже если когда-нибудь из vim получится сделать полноценную IDE, то то это просто будет ещё одна IDE.

Не совсем еще одна. IDE не поддерживает множество языков, в отличие от vim'а. Но это всё мечты.
Большинство современных IDE поддерживают множество языков и большинство из них плагинами, которые можно написать самому.

P.S. Первое «большинство» точно употребляю из осторожности.
Я, конечно, плохо знаком с различными IDE, но разве под множеством не подразумеваются смежные языки? C-C++, PHP-HTML-CSS. Разве есть IDE, которая предоставляет удобные инструменты для PHP, Python и C++ единовременно? Плагины написать можно, но это ведь будет примитивная поддержка.
Eclipse, NetBeans, JetBrains Idea точно поддерживают не смежные языки. На Idea можно установить плагины, как минимум, для Java (вернее он из коробки), PHP, Ruby, Python, Javascript (включая поддержку библиотек и модулей nodejs), множества диалектов SQL и всё это на уровне, претендующем, как минимум, на мирового лидера, с полноценным синтаксическим анализом, автовыводом типов, там где это возможно, анализом *doc комментариев, навигацией по сущностям языка, контекстным автодополнением, поддержкой различных дебагеров, популярных менеджеров зависимостей, множеством возможностей рефакторинга и т. п.
Я так понимаю, эти плагины не от сообщества, а от разработчика ide? То есть, есть какое-то ядро для всех продуктов JetBrains и зависимые от языка детали для каждой из ide, которые могут устанавливаться как плагины?
Есть и от сообщества для не мэйнстрим-языков, например языка bash. Основные, конечно, от разработчиков.

Немного не так. У них есть флагманский продукт Idea, на который предустановлен плагин для Java (из основнsх) и можно установить туда же PHP, Python, Ruby… и есть отдельные продукты (более дешевые) для каждого из этого языков c предустановленным соответствующим плагином, на которые другие основные языки установить нельзя. Но это лишь политика лицензирования: хочешь несколько основных языков в одной IDE — покупай флагманский продукт, не хочешь — покупай отдельные. Вроде флагманский стоит дешевле чем любые два отдельно, но не уверен.
Об этом и речь. Каким бы крутым не был опенсорс вообще и сообщество vim'а в частности, оно всегда будет на несколько шагов позади коммерческой разработки в плане различных фич (речь только про ide). Благо, мои небольшие проекты пока не вынуждают меня пересаживаться на прожорливые ide.
Ну, Eclipse и NetBeans вполне себе опенсорсные, но качество поддержки того же PHP у них было качественно выше чем у vim с наиболее популярными плагинами.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории