Комментарии 315
Он пищит!
Для того, чтобы в vim'е удалить 5 строк достаточно набрать d5d в командном режиме.
5dd намного проще нажать
Еще удобно удалять по номерам строк. Чтобы удалить с 5-й по 10-ю (включительно):
:5,10d
гм. Я тут вижу 6 нажатий клавиш, да ещё надо заметить номер строки, ввести его, потом ввести другой номер строки.
В обычном редакторе я нажму Home, потом выберу первую строку стрелками, т.к. это делается чисто визуально, я это делаю быстрее, мне не нужно тратить мозговые усилия на поиск и набирание цифр. Дальше зажимаю shift и стрелками идут вниз, жму Del.
На мой взгляд это быстрее и проще. А главное намного интуитивнее. Редактор, который требует месяц, чтобы выучить как удалять строки не должен существовать.
В обычном редакторе я нажму Home, потом выберу первую строку стрелками, т.к. это делается чисто визуально, я это делаю быстрее, мне не нужно тратить мозговые усилия на поиск и набирание цифр. Дальше зажимаю shift и стрелками идут вниз, жму Del.
На мой взгляд это быстрее и проще. А главное намного интуитивнее. Редактор, который требует месяц, чтобы выучить как удалять строки не должен существовать.
Основная фишка вима это передвижения по тексту, можно работать не только с символами, как в обычном редакторе, но и со словами, строками, параграфами, буферами и тд. Вобщем можно выделить строки, делается это без использования Home и Del, эти кнопки на разных клавиатурах располагаются черти где, где-то это удобно где-то нет, использование вима позволяет комфортно работать на любой клаве, даже самой эргономичной или орграниченной клаве.
Ну так для движения по словам можно просто зажать ctrl. А для решения проблемы клавиатуры, я просто купил две одинаковых, удобных мне. Одна на работе, другая дома.
Я понимаю, что это не столь универсально, но всё таки значительно проще :)
Я понимаю, что это не столь универсально, но всё таки значительно проще :)
Ну так это прекрасная новость. Вы очень продуктивно работаете с текстом и без всякого Вима. И Вим вам не нужен. Как бонус вы экономите месяц времени, который можете потратить на другие, более полезные дела.
Никто ж не говорит «Вим — в каждый дом». Кому нравится — тот пользуется, кому не нравится — тот не пользуется. Мне нравится.
Что касается вашего примера, то мне, например, неприятно было бы жать 10 раз вверх, а потом 20 раз вниз (держа шифт). А вот мозговых усилий мне как-то не жалко. Каждому — свой инструмент.
Никто ж не говорит «Вим — в каждый дом». Кому нравится — тот пользуется, кому не нравится — тот не пользуется. Мне нравится.
Что касается вашего примера, то мне, например, неприятно было бы жать 10 раз вверх, а потом 20 раз вниз (держа шифт). А вот мозговых усилий мне как-то не жалко. Каждому — свой инструмент.
В обычном редакторе я нажму Home, потом выберу первую строку стрелками, т.к. это делается чисто визуально, я это делаю быстрее, мне не нужно тратить мозговые усилия на поиск и набирание цифр. Дальше зажимаю shift и стрелками идут вниз, жму Del.Никто вас в Vim не заставляет считать строки, это просто один из способов. Вы можете использовать и режим выделения:
Home нажимать не нужно
Shift+V включает построчный режим выделения
Дальше сколько нужно раз стрелка вниз или j (без шифта заметьте). Если знаете точно сколько строк (ну например если их до 5, то считать особо не нужно, вы просто видите их и знаете, что их 5), то вместо пяти нажатий j можно сократить до 5j
d удалить.
Вроде всё равно получается меньше нажатий, чем у вас.
А ещё в Vim сам режим выделения более гибкий, представьте, например, что вы выделили 10 строк и заметили, что в начало выделения надо добавить ещё одну строку. В обычном редакторе вам придется снять выделение и выделить 11 строк заново. В Vim вы в visual mode нажимаете o и расширяете выделение в другую сторону. Я об этом даже не поленился пост написать 4 года назад :)
Но если вам, например, нужно удалить всё внутри фигурных скобок, то это делается с помощью di{ без необходимости передвинуть курсор к открывающей скобке и выделить до закрывающей. Если нужно удалить блок вместе со скобочками — то da{. Это называется text objects, это очень удобно и экономит массу времени и нажатий клавиш.
С блоками мне понравилось. Поставить что ли vim? :)
Или плагин к Visual Studio какой поискать…
Или плагин к Visual Studio какой поискать…
Для Visual Studio есть ViEmu, но как уже заметили тут в комментариях все эти Vim-mode это баловство, в них постоянно натыкаешься на что-то недоимплеменченое, чем в Vim постоянно пользуешься и всё резко тормозится.
Я себе добавил в студии в меню Tools вызов Vim для текущего редактируемого файла, причем при открытии курсор позиционируется на тот же символ, где в студии при вызове находилась каретка. Назначил горячую клавишу и когда я вижу, что что-то мне проще отредактировать в Vim, я нажимаю эту горячую клавишу и редактирую файл как мне удобно. Особенно пригождается, когда нужно файл проекта отредактировать как текст.
Я себе добавил в студии в меню Tools вызов Vim для текущего редактируемого файла, причем при открытии курсор позиционируется на тот же символ, где в студии при вызове находилась каретка. Назначил горячую клавишу и когда я вижу, что что-то мне проще отредактировать в Vim, я нажимаю эту горячую клавишу и редактирую файл как мне удобно. Особенно пригождается, когда нужно файл проекта отредактировать как текст.
Уже около полугода пользуюсь бесплатным vsvim, проект хостится на гитхабе.
Не, лучше не стоит. Только впечатление портить. Я вот часто правлю код и конфиги на удаленных по ssh через vim. И вот как-то решил поставить его на винду и оценить как он будет редактором по умолчанию. Ужасно!
В Vim можно сделать так: Home или 0, V, стрелка вниз или j, d или Delete
Почти также, как у вас, только шифт держать не надо. А можно выделить кусок текста мышкой и нажать Delete (в гуи, разумеется). То есть можно действовать и более-менее привычным способом.
«Основная фишка вима» — это не перемещение по тексту, а то, что в нем нет хоткеев, а есть команды. Как правило, команда имеет формат [<количество повторений>]<что сделать><область действия или команда перемещения>.
Примеры команд: d — удаление, v — выделение, gU — перевод в верхний регистр, dd — удаление строки.
Команды перемещения: f<символ> — переместиться к символу, j — на строчку вниз, w — слово, p — абзац
Задание области действия (только после команды) a (снаружи) или i (внутри), затем скобка/кавычка, w (слово), p (paragraph), t (tag) и т.д.
Переместиться к ближайшей открывающей угловой скобке: f<
Удалить 5 строк: 5dd (5 раз удалить строку) или d5j (удалить 5 строк вниз)
Выделить абзац: vip (выделить внутри абзаца)
Перевести в верхний регистр текст от курсора до конца слова: gUw
Т.е. достаточно запомнить базовые команды и понять принцип. Приведённого в принципе достаточно, чтобы понять, как удалить всё слово, внутри которого находится курсор.
Мне кажется, вполне интуитивно. Правда, приходится думать, что ты делаешь.
Ну и клёвые фишечки из других комментариев тоже играют свою роль :)
Почти также, как у вас, только шифт держать не надо. А можно выделить кусок текста мышкой и нажать Delete (в гуи, разумеется). То есть можно действовать и более-менее привычным способом.
«Основная фишка вима» — это не перемещение по тексту, а то, что в нем нет хоткеев, а есть команды. Как правило, команда имеет формат [<количество повторений>]<что сделать><область действия или команда перемещения>.
Примеры команд: d — удаление, v — выделение, gU — перевод в верхний регистр, dd — удаление строки.
Команды перемещения: f<символ> — переместиться к символу, j — на строчку вниз, w — слово, p — абзац
Задание области действия (только после команды) a (снаружи) или i (внутри), затем скобка/кавычка, w (слово), p (paragraph), t (tag) и т.д.
Переместиться к ближайшей открывающей угловой скобке: f<
Удалить 5 строк: 5dd (5 раз удалить строку) или d5j (удалить 5 строк вниз)
Выделить абзац: vip (выделить внутри абзаца)
Перевести в верхний регистр текст от курсора до конца слова: gUw
Т.е. достаточно запомнить базовые команды и понять принцип. Приведённого в принципе достаточно, чтобы понять, как удалить всё слово, внутри которого находится курсор.
Мне кажется, вполне интуитивно. Правда, приходится думать, что ты делаешь.
Ну и клёвые фишечки из других комментариев тоже играют свою роль :)
В визуальном режиме это и в vim возможно. Лично я использую оба метода по ситуации. Когда известен номер строки и количество удаляемых строк метод предложенный savados-ом работает быстрее.
А когда вы выделили строк 50 текста мышкой или еще хуже — стрелками, потом заметили, что начали свое выделение не с нужной строки, а промахнулись на одну-две, то ругаетесь и начинаете все сначала (и не отнекивайтесь: такое часто бывает), а в виме нажимаете букву «o», которая Вас перемещается в другой конец выделения, и просто расширяете свое выделение в нужную сторону. Вся суть в мелочах ;)
А этот пример, про удаление строк — он точно из жизни?
Не проще ли нажать сколько нужно раз ctrl+shift+D, вместо того чтобы сначала, сбиваясь, отсчитать, а потом за один раз сделать как хакер?
Не проще ли нажать сколько нужно раз ctrl+shift+D, вместо того чтобы сначала, сбиваясь, отсчитать, а потом за один раз сделать как хакер?
Далеко не проще, если вы точно знаете количество строк, тем более, что это делается на автомате.
А откуда я могу знать количество строк не посчитав их?
Вы их видите! А если не видите, то пальцы автоматически нажимают V, быстро выделяют нужные строчки (чаще всего хитрыми командами, а не просто «стрелками») и спокойно удаляют. Никто не говорит, что 5dd — это панацея! Это возможность, которая очень часто помогает, а Вы попросту цепляетесь сейчас :)
Ну через несколько нажатий — такое везде есть. Интересно как в жизни применяется вот это вот «повторить N раз». Как я понимаю пример про строчки все-таки надуманный.
Уверяю Вас: применяется очень часто, но, обычно, это не 5-10 строк, а 2-4, когда глаз точно видит количество, а для остальных случаев есть свои приёмы.
Когда глаза сходу не видят удобно использовать. для повторения команды. тогда удаление 5 строк будет dd… и если удалили больше чем надо, то u будет по одной возвращать строки. если использовать 5dd, то если не угадали с количеством строк u вернёт все 5 строк
Из жизни, из жизни. Хотя чаще я использую d) (например, в конфиге бинда просто секцию удаляет).
Тоже сначала удивлялся такого рода штукам: посчитать сколько строк надо удалить, или заменить, но оказалось довольно удобно и продуктивно. К тому же, это применимо не только к удалению, а практически к любой команде, и дико помогает в написании макросов.
Кстате макросы отдельная тема, записываются легким нажатием «q<Буква Макроса><Нужные действия>»(вызов: "<Сколько раз вызвать макрос, например 22>@<Бува макроса>"), экономит кучу времени при рутинном редактировании
Кстате макросы отдельная тема, записываются легким нажатием «q<Буква Макроса><Нужные действия>»(вызов: "<Сколько раз вызвать макрос, например 22>@<Бува макроса>"), экономит кучу времени при рутинном редактировании
Вы забыли указать, что это перевод. net.tutsplus.com/articles/general/top-10-pitfalls-when-switching-to-vim/
Я когда только начал изучать vim, зашёл в него, и не знал как выйти. Пришлось прибить.
Reset же.
С этого все начинали. После аналогичного случая я просто забил и забыл про него. А потом через пару лет, когда уже пользовался им в течение длительного времени, вспомнил нашу первую встречу, и стало обидно, что я потерял столько времени испугавшись «безвыходного» редактора и «безстрелочного» управления ))
Vim при старте пишет, как из него выйти.
В Vim работает стандартный шорткат F1, там в первых десяти строчках написано, как из него выйти.
Если в Vim нажать Ctrl+C он в статусбаре напишет Type :quit to exit Vim.
В общем я не знаю насколько нужно быть уставшим или невнимательным, чтобы не смочь выйти из Vim.
В Vim работает стандартный шорткат F1, там в первых десяти строчках написано, как из него выйти.
Если в Vim нажать Ctrl+C он в статусбаре напишет Type :quit to exit Vim.
В общем я не знаю насколько нужно быть уставшим или невнимательным, чтобы не смочь выйти из Vim.
Я тоже хотел сначала написать, что вим всё это подсказывает, но потом вспомнил свой шок, при котором человеку вовсе не до подсказок )))
Кстати, было время, когда ничего этого не писалось!
p.s. вообще то идеология vim шокирует новичков (по себе сужу) немного другим: выбором какие кнопки предложены по умолчанию (а их ведь практически никто в последствии не меняет)…
Сильно не буду вдаваться в подробности… но поиграйтесь с lynx/links посмотрите ЧТО предлагают разработчики для навигации по странице вверх/вниз…
Посмотрите что делает vim при нажатии стрелок на цифровой клавиатуре (это когда сюда еще добавятся особенности разных терминалов по работе с расширенной клавиатурой и функциональными клавишами) — становится грустно. Естественно изучив, разобравшись, и перелопатив гору факов и доков можно допилить, до настроить, но блин новичкам приходится туго.
p.s. вообще то идеология vim шокирует новичков (по себе сужу) немного другим: выбором какие кнопки предложены по умолчанию (а их ведь практически никто в последствии не меняет)…
Сильно не буду вдаваться в подробности… но поиграйтесь с lynx/links посмотрите ЧТО предлагают разработчики для навигации по странице вверх/вниз…
Посмотрите что делает vim при нажатии стрелок на цифровой клавиатуре (это когда сюда еще добавятся особенности разных терминалов по работе с расширенной клавиатурой и функциональными клавишами) — становится грустно. Естественно изучив, разобравшись, и перелопатив гору факов и доков можно допилить, до настроить, но блин новичкам приходится туго.
> Посмотрите что делает vim при нажатии стрелок на цифровой клавиатуре (это когда сюда еще добавятся особенности разных терминалов по работе с расширенной клавиатурой и функциональными клавишами) — становится грустно.
Ничего тут грустного: вим создан для слепого метода печати, руки всегда лежат на нужном месте.
Ничего тут грустного: вим создан для слепого метода печати, руки всегда лежат на нужном месте.
А кнопки и не надо менять. Они очень логичны на самом деле. И очень удобно, что вместо стрелочек можно использовать hjkl — экономится уйма времени на перенос правой руки туда-сюда.
С выключенным NumLock у меня в gVim цифровая клавиатура работает как положено — стрелочки двигают курсор, PgUp, PgDn, Home, End листают куда надо.
Про новичков уже сто раз писали, что да, кривая вхождения очень уж крутая. Ну тут нужно или сделать над собой усилие и окупить потом многократно потраченное время и сломанные стереотипы или сразу же отказаться от этой затеи и использовать другой редактор. Я когда начинал, буквально заставлял себя всё редактировать в Vim, потому что поправить пару строчек занимало в 10 раз больше времени в Vim по сравнению с редактором Far например. Зато теперь всё наоборот.
С выключенным NumLock у меня в gVim цифровая клавиатура работает как положено — стрелочки двигают курсор, PgUp, PgDn, Home, End листают куда надо.
Про новичков уже сто раз писали, что да, кривая вхождения очень уж крутая. Ну тут нужно или сделать над собой усилие и окупить потом многократно потраченное время и сломанные стереотипы или сразу же отказаться от этой затеи и использовать другой редактор. Я когда начинал, буквально заставлял себя всё редактировать в Vim, потому что поправить пару строчек занимало в 10 раз больше времени в Vim по сравнению с редактором Far например. Зато теперь всё наоборот.
everyone's first vi session.
^C^C^X^X^X^XquitqQ!qdammit[esc]qwertyuiopasdfghjkl;:xwhat
Продолжая серию шуток про vim:
How do you generate a random string? Put a first year CS student in front of VIM and tell him to save and exit.
Хотелось бы набора упражнений или лабораторных работ для изучения vim. Практика в боевых условиях ни к чему не привождит, потому как надо делать работу а не заниматся изучением. А вот пройти 50 заданий на специально подготовленных файлах — это самое то. Если вдруг кто знает как сотворить такой курс, я бы согласился помочь чем смогу.
В консоли введите vimtutor
PS «все ужеукрадено сделано до нас» (С)
PS «все уже
как уже было сказано — проходим vimtutor либо/и забавный браузерный квест.
Еще есть замечательная штука вимгольф. Дается задание по редактированию текста в виме, и нужно за минимальное количество нажатий клавиш его решить. Причем, можно подсматривать решения тех, кто уже решил, но с конца или на ход меньше твоего лучшего решения. Я в свое время очень сильно поднял скил работы в виме, решая эти паззлы по вечерам как кроссворды.
Real Vim ninjas count every keystroke — do you?
Real Vim ninjas count every keystroke — do you?
Статья могла состоять из одного слова: "vimtutor", и не нужно было этой лишней воды.
Еще совет: попробуйте залезь в вимовский хэлп — это просто сокровище для тех, кто твердо решил стать мастером вима.
Еще совет: попробуйте залезь в вимовский хэлп — это просто сокровище для тех, кто твердо решил стать мастером вима.
Vim пожалуй лучший редактор на сегодняшний день. Перешел на него с TextMate.
В связи с чем, интересно, ссылка на скачивание gVim ведёт фиг знает куда, а не на официальный сайт?
Можно переходить в режим редактирования так, чтобы курсор перешел на следующий символ с помощью a… помогает, если нужно начать писать в конце строки.
Если нужно начать писать в конце строки, то A. Но я предлагаю не пересказывать тут в комментах Tips & Tricks по Vim, а тем более такие базовые вещи. Почему-то половина тредов про Vim скатывается в то, что можно узнать за первые 10 минут вимтутора…
<holywar_mode>
А вот и нет. Мне кажется, что он не знает того, что знаю я. Иначе как объяснить, что я уже перешёл на емакс, а он ещё нет?
</holywar_mode>
Согласитесь, каждый раз, когда вы видите человека, который использует Vim, вам кажется, что он знает то, чего не знаете вы. Иначе, как вы можете объяснить тот факт, что он использует редактор, который, по вашему мнению, является open-source мусором?
А вот и нет. Мне кажется, что он не знает того, что знаю я. Иначе как объяснить, что я уже перешёл на емакс, а он ещё нет?
</holywar_mode>
Чем вы объясните свой выбор?
Мне кажется тег <holywar_mode> довольно ясно объяснил его выбор ))
В первую очередь org-mode. В вимовские времена перебирал плагины для туду-списков и довольно долго пользовался taskpaper'ом, но org-mode — это действительно нечто.
Во вторую — ido-mode + tramp.
В третью — лисп вместо вимскрипта. Вимскрипт ужасен, а на руби и питоне, к сожалению, не пишут, хотя можно. Мне кажется, я даже где-то видел рекомендацию не использовать руби/питон, если планируете распространять свой плагин. Что довольно странно, потому что сейчас мало где их нет.
Во вторую — ido-mode + tramp.
В третью — лисп вместо вимскрипта. Вимскрипт ужасен, а на руби и питоне, к сожалению, не пишут, хотя можно. Мне кажется, я даже где-то видел рекомендацию не использовать руби/питон, если планируете распространять свой плагин. Что довольно странно, потому что сейчас мало где их нет.
В vim самое сладкое, что есть для меня — это его макросы
Очень сильно может сэкономить время. Да, можно это сделать регэкспами, можно написать обработку на авк\питоне\перле. Но не всегда.
www.oreillynet.com/mac/blog/2006/07/more_vim_save_time_with_macros_1.html
По ссылке хороший пример как файл www.oreillynet.com/mac/blog/images/seuss.txt можно с минимумом телодвижений превратить в html список.
Очень сильно может сэкономить время. Да, можно это сделать регэкспами, можно написать обработку на авк\питоне\перле. Но не всегда.
www.oreillynet.com/mac/blog/2006/07/more_vim_save_time_with_macros_1.html
По ссылке хороший пример как файл www.oreillynet.com/mac/blog/images/seuss.txt можно с минимумом телодвижений превратить в html список.
Это хороший пример?
Подобные примеры решаются простым регэкспом, практически в любом современном редакторе.
А макросы к примеру в EmEditor работают на основе Windows Scripting Host, так что на них там чуть ли не целые программы можно писать на JavaScript или VBScript.
Можно какой-то реально полезный макрос на vim, для примера?
Подобные примеры решаются простым регэкспом, практически в любом современном редакторе.
А макросы к примеру в EmEditor работают на основе Windows Scripting Host, так что на них там чуть ли не целые программы можно писать на JavaScript или VBScript.
Можно какой-то реально полезный макрос на vim, для примера?
Макрос в виме — это повторение действий пользователя, так что в каждом макросе — вся мощь вима. И для них не нужно учить javascript или vbscript.
Макросы в EmEditor точно также записывают и повторяют действия пользователя, только этим они не ограничиваются ;) Примерно так же как в MS Office.
Макросы в EmEditor это помоему не тоже самое что и в виме. В виме макросы это часто штука одноразовая, пишутся по нажатию одной кнопки, запоминаются все действия пользователя, а потом применяются в любом месте, все это делается на лету, не тормозя процесс, и не требуя при этом умения программировать, нужно только знание передвижений в виме.
А чего там тормозить процесс? Нажал Ctrl+Shift+R и EmEditor записывает все действия юзера, еще раз Ctrl+Shift+R остановилась запись, потом Ctrl+Shift+P выполнился макрос. Но это только один из простейших режимов, хотя и достаточный для многих.
Ну это простой пример на котором все понятно.
Чуть навороченней — из каждых 10 строк удалить каждую 5,7, 8 строки файла
удалить кусок второй строки начиная со второго вхождения буквы «A»
4jfAfADjddjj2ddjj
С регэкспами это сложнее. Никто не спорит, что они мощная штука. Но сложнее. Я вот сходу не вспомню как сделать на регэксах удаление каждой энной строки в файле. А вимовские команды — они уже в подкорке. Написание такого «макроса» это буквально 10 секунд. И это 10 секунд в стиле REPL. Когда ты видишь эффект от каждой команды. «Отлаживаешь» его не отходя от кассы. Верунть все взад — просто нажать 'u'. После того, как макрос записан, ты повторяешь его 100 раз 100@q например.
Писать программу даже на джаваскрипте это дольше.
Более того, регэксп и джаваскрипт с питоном надо дебажить. А в случае с макросами — это удобно.
Офисовые макры круты, я не спорю. Но опять же я не вспомню из коробки возможность повторить записанный макрос 100 раз начиная с этой строки. И возможность ссылаться из одного макроса на другой.
Такой удобной системы макросов не видел ни в одном другом редакторе. Даже emacs при всей своей мощи не дотягивает по удобству.
Такие дела.
Чуть навороченней — из каждых 10 строк удалить каждую 5,7, 8 строки файла
удалить кусок второй строки начиная со второго вхождения буквы «A»
4jfAfADjddjj2ddjj
С регэкспами это сложнее. Никто не спорит, что они мощная штука. Но сложнее. Я вот сходу не вспомню как сделать на регэксах удаление каждой энной строки в файле. А вимовские команды — они уже в подкорке. Написание такого «макроса» это буквально 10 секунд. И это 10 секунд в стиле REPL. Когда ты видишь эффект от каждой команды. «Отлаживаешь» его не отходя от кассы. Верунть все взад — просто нажать 'u'. После того, как макрос записан, ты повторяешь его 100 раз 100@q например.
Писать программу даже на джаваскрипте это дольше.
Более того, регэксп и джаваскрипт с питоном надо дебажить. А в случае с макросами — это удобно.
Офисовые макры круты, я не спорю. Но опять же я не вспомню из коробки возможность повторить записанный макрос 100 раз начиная с этой строки. И возможность ссылаться из одного макроса на другой.
Такой удобной системы макросов не видел ни в одном другом редакторе. Даже emacs при всей своей мощи не дотягивает по удобству.
Такие дела.
Вы не внимательны. Javascript это дополнительная возможность. В простейшем случае, просто запоминаются все нажатые юзером кнопки и команды.
А Вам часто нужно
из каждых 10 строк удалить каждую 5,7, 8 строки файла?
удалить кусок второй строки начиная со второго вхождения буквы «A»
Когда работал с GPS трекерами надо было достаточно часто.
Или когда недо-csv файл надо было превратить в что-то удобоваримое, тоже было.
Часто ли такое происходило? Не особо. Я собственно серебрянную пулю и не обещал, просто поставил акцент на той фишке которая мне нравится в vim.
Плюс он еще есть практически на любом *никсе.
А по работе я больше все же Visual Studio пользовался да PyCharm.
Или когда недо-csv файл надо было превратить в что-то удобоваримое, тоже было.
Часто ли такое происходило? Не особо. Я собственно серебрянную пулю и не обещал, просто поставил акцент на той фишке которая мне нравится в vim.
Плюс он еще есть практически на любом *никсе.
А по работе я больше все же Visual Studio пользовался да PyCharm.
> Дни напролёт, занимаясь редактированием HTML и CSS, вы поймёте, что Vim — это не то, что вам нужно. С этим фактом не поспоришь. Просто найдите редактор, который придётся вам по душе. Такой, как Coda, например.
Категорически не согласен.
Категорически не согласен.
Ваше право. В начале использования вима я был солидарен с точкой зрения автора. Поэтому оставил данный аргумент. Да и не одному мне в начале было «не по себе».
Тоже не согласен, vim нужен не только программистам для работы с кодом, его часто использую для работы с текстом.
>Мой vimrc пуст
По началу он и должен быть пуст или почти пуст. Просто редактор объективно требует мало настроек и крутить что-то «чтобы было» без понимания нет нужды.
По началу он и должен быть пуст или почти пуст. Просто редактор объективно требует мало настроек и крутить что-то «чтобы было» без понимания нет нужды.
>> Пока вы не потратите по крайней мере месяц на ознакомление с ним, вы, несомненно, будете его ненавидеть.
та же история с GIMP.
и это минус, вызванный недостаточной работой над интерфейсом. :(
та же история с GIMP.
и это минус, вызванный недостаточной работой над интерфейсом. :(
Причем тут интерфейс? Это другая философия, которая требует изучения. (говорю только про вим)
Вилкой тоже не учились пользоваться? ЯП сам в голову залез?)
Прошёл vimtutor пару лет назад, теперь пользуюсь vim'ом для правки конфигов, потому что есть везде — перемещение «стрелочками», поиск символов, ну dd — больше ничего не осилил. Проблемы с русской раскладкой опять-таки из коробки (благо в конфигах она требуется крайне редко).
Как-то очень сложно его осваивать полноценно. Читать доки в надежде запомнить хоткеи — глупо. Нормальной справки (выбрал мышкой желаемое действие — увидел что нажать нужно) не встречал. Встроенный хелп странное впечатление производит. В этом отношении программы с меню, которые показывают рядом с пунктом меню его шорткат куда проще изучать. Чисто машинально получается: раз нашел команду — выполнил, второй, третий… Потом надоедает лазить в меню и запоминаешь шорткат. Забыл — подглядел в меню. И справка не нужна.
Ну и до настоящей IDE ему, имхо, всё же далеко. Прежде всего интеллектуальное автодополнение вроде отсутствует как класс, что-то может предлагать (правда ни разу не видел, хотя какие-то плагины даже пытался ставить, но не работали почему-то), но дико сомневаюсь, что в динамически типизируемых языках он проводит контекстный анализ типа и выведет нужное. То есть если написать
Как-то очень сложно его осваивать полноценно. Читать доки в надежде запомнить хоткеи — глупо. Нормальной справки (выбрал мышкой желаемое действие — увидел что нажать нужно) не встречал. Встроенный хелп странное впечатление производит. В этом отношении программы с меню, которые показывают рядом с пунктом меню его шорткат куда проще изучать. Чисто машинально получается: раз нашел команду — выполнил, второй, третий… Потом надоедает лазить в меню и запоминаешь шорткат. Забыл — подглядел в меню. И справка не нужна.
Ну и до настоящей IDE ему, имхо, всё же далеко. Прежде всего интеллектуальное автодополнение вроде отсутствует как класс, что-то может предлагать (правда ни разу не видел, хотя какие-то плагины даже пытался ставить, но не работали почему-то), но дико сомневаюсь, что в динамически типизируемых языках он проводит контекстный анализ типа и выведет нужное. То есть если написать
$obj = new SomeClass; $obj->
, то вряд ли увижу все public члены класса SomeClass и его родителей/интерфейсов. Про «магию» вообще молчу. Ещё не понравилось, что отсутствует концепция проекта. Хотя, конечно «готовить» его я не умею и может всё это есть.>… больше ничего не осилил
На этом можно было уже остановиться.
> Как-то очень сложно его осваивать полноценно. Читать доки в надежде запомнить хоткеи — глупо. Нормальной справки (выбрал мышкой желаемое действие — увидел что нажать нужно) не встречал. Встроенный хелп странное впечатление производит. В этом отношении программы с меню, которые показывают рядом с пунктом меню его шорткат куда проще изучать. Чисто машинально получается: раз нашел команду — выполнил, второй, третий… Потом надоедает лазить в меню и запоминаешь шорткат. Забыл — подглядел в меню. И справка не нужна.
Опять же повторюсь: в виме совершенно другой подход: научись использовать его правильно, а потом пальцы сами будут делать твою работу, причем гораздо быстрей, чем взяться за мышку и пошариться по меню, в частности.
dd же Вы освоили и очень часто используете… разве Вам не интересно, сколько еще вкусностей и быстрых инструментов может предоставить этот редактор? :)
На этом можно было уже остановиться.
> Как-то очень сложно его осваивать полноценно. Читать доки в надежде запомнить хоткеи — глупо. Нормальной справки (выбрал мышкой желаемое действие — увидел что нажать нужно) не встречал. Встроенный хелп странное впечатление производит. В этом отношении программы с меню, которые показывают рядом с пунктом меню его шорткат куда проще изучать. Чисто машинально получается: раз нашел команду — выполнил, второй, третий… Потом надоедает лазить в меню и запоминаешь шорткат. Забыл — подглядел в меню. И справка не нужна.
Опять же повторюсь: в виме совершенно другой подход: научись использовать его правильно, а потом пальцы сами будут делать твою работу, причем гораздо быстрей, чем взяться за мышку и пошариться по меню, в частности.
dd же Вы освоили и очень часто используете… разве Вам не интересно, сколько еще вкусностей и быстрых инструментов может предоставить этот редактор? :)
Интересно, потому топики про vim на Хабре не пропускаю и этот в частности. Но не запоминается прочитанная информация, то есть возможности в голове крутятся (в лучшем случае), а когда их нужно использовать, то времени гуглить как удалить 5 строк в виме нету, надо удалять, а не гуглить, быстрее нажать dddddddddd :), хотя и помню, что можно где-то как-то указать квантификатор. Плюс есть «шорткаты» мнемоничные (a ,i, dd, например), по крайней мере для меня, а есть из из разряда «это невозможно понять, это нужно запомнить» (тот же поиск, или перемещение не стрелочками).
Я понимаю, что вим очень мощный инструмент, но уж очень крутая кривая вхождения — другими редакторами или (IDE) можно пользоваться сразу, плавно увеличивая используемые функции, в виме же чтобы написать hello world надо мануалы читать.
В общем двойственное отношение, с одной стороны вроде мощный и должна быть более эффективная работа в нём, но с другой — если всей мощью сразу не овладеть (как?), то работа получается менее эффективной чем в самом примитивном редакторе типа блокнота или даже досовского edit.
Я понимаю, что вим очень мощный инструмент, но уж очень крутая кривая вхождения — другими редакторами или (IDE) можно пользоваться сразу, плавно увеличивая используемые функции, в виме же чтобы написать hello world надо мануалы читать.
В общем двойственное отношение, с одной стороны вроде мощный и должна быть более эффективная работа в нём, но с другой — если всей мощью сразу не овладеть (как?), то работа получается менее эффективной чем в самом примитивном редакторе типа блокнота или даже досовского edit.
Как что-то новое и мощное может выглядеть и работать так же как старое и привычное? (замудрил, но, надеюсь, поняли, что я имею в виду)
Порог вхождения оправдывается и покрывается с головой уже через пару недель. Надо только принять решение и внимательно пройти vimtutor пару раз, а дальше навыки будут очень быстро нарастать и интерес появится и даже азарт… а потом коллеги, которые поначалу смеялись над Вами, начнут потихоньку присматриваться, пробовать и даже пересаживаться на вим… и постепенно мы захватим весь мир! Не сопротивляйтесь эволюции :))
Порог вхождения оправдывается и покрывается с головой уже через пару недель. Надо только принять решение и внимательно пройти vimtutor пару раз, а дальше навыки будут очень быстро нарастать и интерес появится и даже азарт… а потом коллеги, которые поначалу смеялись над Вами, начнут потихоньку присматриваться, пробовать и даже пересаживаться на вим… и постепенно мы захватим весь мир! Не сопротивляйтесь эволюции :))
Столкнулся с этой же проблемой когда начал изучать(где-то месяц назад). Но меню, боюсь, не спасёт. Надеюсь на cheat-sheet. В своё время, когда осваивал консоль в ubunt, поставил cli-cheat-sheet на рабочий стол. Помогло :)
Хотите совет? В течение нескольких дней, когда работаете, обращайте внимание на повторяющиеся действия, которые Вам приходится делать, а потом отправляйтесь искать, как это сделать быстрей (обычно пара-тройка клавиш), и заставляйте себя пользоваться новыми знаниями. Достаточно пары дней, чтобы пальцы запомнили новые сочетания и трюки.
Я наверное не требовательный vim пользователь, мне и стандартного автодополнения хватает :)
Он у меня ни разу вообще не автодополнял, сколько не писал в нём код на php, python или ruby. Всё ручками приходилось писать, ни одного предложения что-то дополнить не было. Бог с ними с членами класса и переменными, но даже ключевые слова типа class или function не предлагает дополнять.
Автодополнение — тема для отдельного холливара, не приплетайте это сюда ))
PS. Про автодополнение в питоне вообще грех упоминать при наличии открытого интерпретатора в соседней консоли
PS. Про автодополнение в питоне вообще грех упоминать при наличии открытого интерпретатора в соседней консоли
Чем поможет консоль? В ней-то дополнит, а потом копипастить мышкой?
А головой кто думать будет? Кто будет запоминать и учиться? Так нас роботы и поработят в 2040 году :(
Так я хочу, чтобы среда разработки (интегрированный комбайн или юникс-уэй набор инструментов — не суть) оставляла мне только одну функцию — думать :) На настоящем этапе развития техники хотя бы чтоб избавило от необходимости запоминать вещи, не относящиеся к бизнес-логике и архитектуре.
«А еще я туда ем ...» (с) хз кто
Автокомплит нужен хотя-бы для того, чтобы опечаток меньше было.
C+n обычно вызов автодополнения, дополняет как по плагину для языка, так и по словам из файла\соседних файлов, вроде еще в зависимости от статистики выбора тех или иных вещей в авто дополнении изменяет приоритет (порядок в списке) подсказок.
Шорткаты там вполне логичные по-моему. После вимтутора вроде должно было появиться понимание как они работают. И потом в меню же шорткаты для каждого пункта указаны (если они существуют). Я правда меню в виме не пользуюсь, но специально включил проверил — шорткаты на месте.
Про хелп — :helpg есть, это help grep он ищет не только по ключам статей а по тексту хелпа полностью.
Что до IDE — так Vim это не IDE ни разу, это просто мощный текстовый редактор.
Про хелп — :helpg есть, это help grep он ищет не только по ключам статей а по тексту хелпа полностью.
Что до IDE — так Vim это не IDE ни разу, это просто мощный текстовый редактор.
К сожалению, он есть не везде, в какой версии минимальной Бубунты (или ОС Х) был только nano.
>> Ну и до настоящей IDE ему, имхо, всё же
далеко.
Ничего, что это редактор?
далеко.
Ничего, что это редактор?
Часто он позиционируется (в «блогосфере») как замена IDE (а emacs так и ОС вообще :) ).
Ну и до настоящей IDE ему, имхо, всё же далеко. Прежде всего интеллектуальное автодополнение вроде отсутствует как класc
Зависит от языка, например для python есть хорошее дополнение и рефакторинг. Для javascript ничего интересного не нашел, есть простенькое из коробки по словарю, но это конечно же не то. С другими динамическими языками в виме не работаю.
Про питон — это вы rope и ropevim имеете в виду? Они у вас правда хорошо работают? Я просто повозился, помучился, нашел там баги, попереписывался с автором. Но в результате у меня прижился только AutoImport
А вы попробуйте github.com/klen/python-mode, очень даже хорошо работает.
Для питона вообще всего этого не нужно. Есть интерпретатор. Этого вполне достаточно, уверяю Вас.
Четыре года использовал vim как IDE для программирования на плюсах
Если не секрет, из под какой операционной системы велась разработка?
Кажется мне что из под Windows для проектов на C++ больше студией пользуются.
Интересно было бы знать статистику использования Vim по операционным системам и языкам программирования.
И, не холивара ради, если есть опыт использования студии, хотелось бы услышать основные преимущества Vim перед студией.
Кажется мне что из под Windows для проектов на C++ больше студией пользуются.
Интересно было бы знать статистику использования Vim по операционным системам и языкам программирования.
И, не холивара ради, если есть опыт использования студии, хотелось бы услышать основные преимущества Vim перед студией.
Для статистики:
из-под windows, C++, целевая платформа: Embedded.
Сейчас использую VIM совместно со студией, вызываю по горячей клавише для быстрого сложного редактирования.
Для меня основные преимущества именно в качестве редактирования: когда в редакторе VS делаешь что-то большое, очень не хватает команд VIM, прямо раздражение какое-то испытываешь.
А как IDE VS+VisualAssist меня больше устраивают в плане навигации по большому проекту.
из-под windows, C++, целевая платформа: Embedded.
Сейчас использую VIM совместно со студией, вызываю по горячей клавише для быстрого сложного редактирования.
Для меня основные преимущества именно в качестве редактирования: когда в редакторе VS делаешь что-то большое, очень не хватает команд VIM, прямо раздражение какое-то испытываешь.
А как IDE VS+VisualAssist меня больше устраивают в плане навигации по большому проекту.
Сейчас использую VIM совместно со студией, вызываю по горячей клавише для быстрого сложного редактирования
Что подразумевается под сложным редактированием, добавление метода класса с несколькими членами класса с последующими рефакторингами с переименованиями методов и выделением отдельного класса это уже сложно или нет?
И я так понимаю что Vim Вы вызываете для редактирования одного файла? Но ведь в проектах на C++ одновременно редактируются около 4-х файлов (MyClass.h + MyClassImpl.cpp + MyClassUsage.cpp*N + MyClassUnitTest.cpp)
Вы постоянно переключаетесь между студией и Vim, или MyClassImpl.cpp редактируете в Vim, а остальные в студии 0_o?
Вы постоянно переключаетесь между студией и Vim, или MyClassImpl.cpp редактируете в Vim, а остальные в студии 0_o?
Я нажимаю горячие клавиши и у меня открывается gVim в том же месте, где я находился.
Что подразумевается под сложным редактированием?
Например, чтобы разобраться в сложном неизвестном мне коде нужно было залогировать вызовы методов (а там их были многие десятки), для этого я записал два макроса:
один на переход на определение следующего метода, второй вставку кода логирования.
Всего это заняло около 10 минут в полуавтоматическом режиме и то только из-за того, что поленился поточнее сформулировать признак следующего метода, но если не попадал, то @@.
В ручную я бы потратил гораздо больше времени.
Другой пример, иногда требуется переколбасить громоздкий код, тогда просто удобней то, что много регистров копирования и то, что VIM понимает объекты типа внутри фигурных/круглых скобок, можно накопировать нужных участков и расставить их как надо.
Больше трёх регистров я использую только для макросов.
Под Fedora. Альтернативы там были не очень — Eclipse, который, кажется, в последнее время дозрел, и NetBeans.
Студию полируют достаточно давно, и, видимо, там хороши живётся, но Windows-программирование для меня всегда было темным лесом.
Единственное, чего я не понимаю, так это людей, которые пытаются писать на Java в виме.
Студию полируют достаточно давно, и, видимо, там хороши живётся, но Windows-программирование для меня всегда было темным лесом.
Единственное, чего я не понимаю, так это людей, которые пытаются писать на Java в виме.
На протении пары месяцев пытался подружиться с вимом — не взлетело. Зато когда я ушел на емакс…
ИМХО, вим больше для админов, конфиги править.
ИМХО, вим больше для админов, конфиги править.
Я пару дней его покрутил, после чего прошло несколько месяцев. Решил посмотреть опять на него… и знаете, мало того, что я приручил его, так я в него еще и влюбился.
Я параллельно и очень много работаю в VS2010. Оказалось, что у емакса и студии мало того, что похожие базовые принципы, так еще и кейбиндинги многие совпадают/близки.
А вим никак не взлетает именно из-за другого воркфлоу. Хотя на задачах типа «быстро поправить конфиг» он меня не пугает и удобнее, чем нано, например.
А вим никак не взлетает именно из-за другого воркфлоу. Хотя на задачах типа «быстро поправить конфиг» он меня не пугает и удобнее, чем нано, например.
Говоря о сложности познания vim, нужно упомянуть о сложности emacs. Когда решил найти легковесный, мощный редактор для JS\HTML\CSS сначала попробовал второй (до этого уже имел опыт с vim, как редактором для shell скриптов), и просто ужаснулся, спросил знакомого гика, тот сказал, что если нет желания пилить все и вся под себя вплоть до переделки шорткатов, то лучше даже не начинать им пользоваться. Перешел на gvim поставил 6 плагинов, прочитал немного татур — все. HTML вполне себе неплохо редактировать, но да соглашусь в WebShtorm из коробки лучше поддержка, но думаю если поискать плагины то и в Vim можно решить эту проблему.
Гик Вас обманул. Так ему и передайте.
Если не хочется сразу пилить под себя, достаточно поставить один пак — github.com/technomancy/emacs-starter-kit
А в 24 емаксе почти все это уже есть из коробки.
А в 24 емаксе почти все это уже есть из коробки.
Кстати, всем желающим начать наиболее эффективно использовать Vim настоятельно рекомендую не пожалеть времени и посмотреть видео Брама 7 Habits For Effective Text Editing или хотя бы прочитать. Это кстати не только к Vim относится, принципы универсальные.
Вопрос к знатокам — существует ли какой-нибудь консольный редактор, который по управлению и горячим клавишам максимально приближен к привычным большинству текстовым редакторам вроде notepad++, bred, sublime-text-2. Просто тратить 30 лет жизни на изучение VIM-а только для того, чтобы изредка в нём править конфиги по SSH несколько не логично, а более простые редакторы, вроде jed или nano также имеют old school управление, которое мне совершенно чуждо. Пробовал mcedit — не то, напоминает редактор паскаля, которым приходилось пользоваться в школе, страшно неудобно.
Не так давно открыл для себя sublime text 2, и с тех пор души в нём не чаю, лишь немногое доставляет дискомфорт (например, то что всё таки это просто редактор и полноценного автодополнения ждать от него не приходится, так же как и подсветки ошибок синтаксиса языка на лету). Но увы, он не консольный.
Не так давно открыл для себя sublime text 2, и с тех пор души в нём не чаю, лишь немногое доставляет дискомфорт (например, то что всё таки это просто редактор и полноценного автодополнения ждать от него не приходится, так же как и подсветки ошибок синтаксиса языка на лету). Но увы, он не консольный.
30 лет это вы сильно преувеличили. Через пару месяцев будете уже вполне сносно редактировать ;)
nano?
попробуй sed, для редактирования конфигов подходит, и да он консольный :)
Emacs как ни странно.
А вы поменьше читайте всяких бредовых статей.
Научиться редактировать текст в виме можно за 10 минут.
Все что нужно, это знать, что текст вставляется в режиме вставки (insert, включается кнопкой i), а команды вроде сохранения файла — в нормальном режиме (normal, переход из вставки клавишей escape). Ну и шпаргалка вроде такой может пригодиться: www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html
Гораздо больше времени понадобится, чтобы редактировать текст эффективно, не в духе блокнота, а в духе вима. Но это все по желанию, не хотите использовать его на полную мощь — и не надо, заставлять никто не будет.
Научиться редактировать текст в виме можно за 10 минут.
Все что нужно, это знать, что текст вставляется в режиме вставки (insert, включается кнопкой i), а команды вроде сохранения файла — в нормальном режиме (normal, переход из вставки клавишей escape). Ну и шпаргалка вроде такой может пригодиться: www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html
Гораздо больше времени понадобится, чтобы редактировать текст эффективно, не в духе блокнота, а в духе вима. Но это все по желанию, не хотите использовать его на полную мощь — и не надо, заставлять никто не будет.
Ок, но какое это имеет отношение к моему вопросу? :)
Непосредственное :)
vi/vim — отличный выбор для редактирования конфигов. Особенно с учетом того, что vi всегде везде есть по умолчанию.
vi/vim — отличный выбор для редактирования конфигов. Особенно с учетом того, что vi всегде везде есть по умолчанию.
Ок. Есть такое редактор — jed. Он очень примитивный, использую его для той самой редкой правки конфигов. Я до сих пор не запомнил как там вырезать и вставлять текст. Забывается почти сразу же, так как я не админ, и по конфигам ssh лазаю редко. Vi\vim в разы сложнее, следовательно, для специфики моей задачи нет ничего хуже vim-а. Разве я не прав? Это же не велосипед, когда 1 раз проехался, и на всю жизнь навыки остались. Тут нужно длительное привыкание, о чём в сим топике уже не раз говорили.
Нет, это негодная, ошибочная логика, когда речь идет о vi.
Я вижу, без примеров из жизни не обойтись. А их полно, взять хотя бы сцену из известного фильма: www.youtube.com/watch?v=dFUlAQZB9Ng. А теперь представьте себе, что бы было, если бы героиня не знала vi?
Я вижу, без примеров из жизни не обойтись. А их полно, взять хотя бы сцену из известного фильма: www.youtube.com/watch?v=dFUlAQZB9Ng. А теперь представьте себе, что бы было, если бы героиня не знала vi?
Возможно ли с помощью плагинов сделать vim таким же функциональным, как продукты от JetBrains (PyCharm, IDEA, ..)?
Можно, но не всегда нужно, но Вы в это не поверите. :)
Действительно не поверю, что не нужна навигация по проекту и подключаемым библиотекам/фреймворкам. Вероятно, для этого нужен полноценный синтаксический анализатор, строящий графы зависимостей сущностей языка и проецирующих их на ФС. А писать такой анализатор как плагин для vim, имхо, сильно нетривиальная задача, особенно для языков у которых формальных спецификаций-то нет толком.
пригляжывался к PyCharm, паралельно смотрел интересные фишки которые можно реализовать у себя в vim, сразу понял что не все можно реализовать, но и нужного в PyCharm оказалось очень мало
Вот в том то и вопрос, что в итоге большая часть работы сводится к редактированию текста, а ответ тут очевиден… :)
Ещё навигации много и чтения. Пока найдёшь место куда свой «костыль» забить…
Что-то я уже запутался, Вы вообще «за» или «против»? )) Не понимаю, к чему Вы клоните :)
За или против чего? :) vim хороший (хотя и сложный) редактор, но на роль IDE он всё же не тянет из-за отсутствия средств навигации по проекту, что составляет немалую часть трат времени при разработке чего-то сложнее hello world.
Я бы на Вашем месте это так смело не утверждал :) Во-первых, Вам уже говорили, что с навигацией по проекту проблем нет: их видите только Вы. )) А во-вторых, я уже долго занимаюсь разработкой очень не маленьких проектов, используя только вим и консольные утилиты, причем бывает, что проекты начаты не мной, и надо в них разбираться, и опять же никаких неудобств не испытываю :) Поймите, что даже не имея чего-то «иде-ешного», пользователи вима никогда с него не уйдут, потому что суть его в удобстве редактирования, которое не предоставит никакой другой инструмент.
Не только я даже в этом топике обратил внимание на эту особенность. Я не спорю, может в комбинации с консольными утилитами он и дотянет (почти — по Вашим словам) до функциональности IDE, вернее в чём-то переплюнет, а в чём-то будет отставать, не исключено, что заметно. Но это, во-первых, ещё сильнее повышает порог вхождения (надо ещё и утилиты изучать), а, во-вторых, уже обычный субъективный выбор между плюсами и минусами. То есть плюсы и минусы объективны (допустим), а вот веса у них точно субъективны. Для кого-то удобство редактирования важнее, для кого-то автодополнение, кто-то руки от клавиатуры не хочет отнимать для навигации, кто-то от мышки.
Плюс лично у меня память плохая, вернее какая-то избирательная, помнит не то, что нужно, например где-какая клавиша на клавиатуре секунду где-то вспоминаю (соответственно вслепую знаков 60 в минуту печатаю только, а глядя на неё — знаков 300), а какой-нибудь хитрый шорткат в браузере, которым раз в месяц пользуюсь типа Ctrl+Alt+R помню, потому что постоянно его вижу в меню. И запоминать шорткаты, простите — команды, vim у меня плохо получается, зубрить даже пробовал. Аналогично, например, с функциями PHP и их аргументами — без подсказок никак, а увидев даже неполный список тут же вычленяю нужную взглядом или даже соображаю на сколько скроллить, а так полчаса могу вспоминать нужна мне asort, sort или array_sort, причём помню что одной из них точно нет, а две оставшихся по разному относятся к ключам, тут вообще без мана не обойтись. А какую-нибудь ерунду типа номера машины соседа, которого даже по имени не знаю — запоминаю и узнаю где-нить в городе.
Плюс лично у меня память плохая, вернее какая-то избирательная, помнит не то, что нужно, например где-какая клавиша на клавиатуре секунду где-то вспоминаю (соответственно вслепую знаков 60 в минуту печатаю только, а глядя на неё — знаков 300), а какой-нибудь хитрый шорткат в браузере, которым раз в месяц пользуюсь типа Ctrl+Alt+R помню, потому что постоянно его вижу в меню. И запоминать шорткаты, простите — команды, vim у меня плохо получается, зубрить даже пробовал. Аналогично, например, с функциями PHP и их аргументами — без подсказок никак, а увидев даже неполный список тут же вычленяю нужную взглядом или даже соображаю на сколько скроллить, а так полчаса могу вспоминать нужна мне asort, sort или array_sort, причём помню что одной из них точно нет, а две оставшихся по разному относятся к ключам, тут вообще без мана не обойтись. А какую-нибудь ерунду типа номера машины соседа, которого даже по имени не знаю — запоминаю и узнаю где-нить в городе.
есть замечательная штука:
github.com/klen/python-mode
она + NERDTree + github.com/lambdalisue/nose.vim + www.wana.at/vimshell/
а так-же bitbucket.org/agr/ropevim (в python-mode уже есть, там хэлпы по кей биндингам)
На освоение этого комбайна ушло пара дней (день и ночь точнее, сам уже давно использую vim)
Зато это даёт весь нужный функционал PyCharm и даже больше (рефакторинг, детектинг ошибок при сохранении файла, автокомплит, поиск, переименование, python shell, просто шелл, запуск\редактирование юнит тестов по одной клавише, соответствие pep8). Дополнительно vim не подвисает на больших python проектах и не тормозит как это делает pycharm.
github.com/klen/python-mode
она + NERDTree + github.com/lambdalisue/nose.vim + www.wana.at/vimshell/
а так-же bitbucket.org/agr/ropevim (в python-mode уже есть, там хэлпы по кей биндингам)
На освоение этого комбайна ушло пара дней (день и ночь точнее, сам уже давно использую vim)
Зато это даёт весь нужный функционал PyCharm и даже больше (рефакторинг, детектинг ошибок при сохранении файла, автокомплит, поиск, переименование, python shell, просто шелл, запуск\редактирование юнит тестов по одной клавише, соответствие pep8). Дополнительно vim не подвисает на больших python проектах и не тормозит как это делает pycharm.
Есть интересный проект — Eclim.
С его помощью можно скрестить Eclipse и Vim: текст редактируется с помощью Vim'а, но тем не менее можно пользоваться практически всей мощью самого Eclipse.
Впрочем, плотно поработав как в Intellij Idea, так и в Vim с Eclim, все-таки выбрал Idea. Редактирование текста в vim'е, конечно, круче, но скорость разработки в Idea суммарно выше.
С его помощью можно скрестить Eclipse и Vim: текст редактируется с помощью Vim'а, но тем не менее можно пользоваться практически всей мощью самого Eclipse.
Впрочем, плотно поработав как в Intellij Idea, так и в Vim с Eclim, все-таки выбрал Idea. Редактирование текста в vim'е, конечно, круче, но скорость разработки в Idea суммарно выше.
Возможно, но придется их сначала написать.
Пост будет неполным без ссылки на этот: What is your most productive shortcut with Vim?
Картинка для привлечения внимания:
![image](https://habrastorage.org/getpro/habr/comment_images/5a9/4a2/6a8/5a94a26a8feb7963879be4c723082e77.gif)
Картинка для привлечения внимания:
![image](https://habrastorage.org/getpro/habr/comment_images/5a9/4a2/6a8/5a94a26a8feb7963879be4c723082e77.gif)
А пронумеровать по паттерну он умеет так же как аналогичный режим в емаксе?
4-5 аккордов против одноко в IDE (переименовать/заменить в выделенном). Наверное, это — удобно.
Перед изучением vim следует освоить классический слепой десятипальцевый метод набора?
У меня есть три вопроса:
1. Скажите пожалуйста — как в vim'е выделить подсветкой все слова в тексте, совпадающие с тем, что под курсором? 2. И как снять подсветку?
3. Как всё-таки подружить его с русскими буквами? Что бы для использования «магических клавиш» не нужно было бы каждый раз менять раскладку.
1. Скажите пожалуйста — как в vim'е выделить подсветкой все слова в тексте, совпадающие с тем, что под курсором? 2. И как снять подсветку?
3. Как всё-таки подружить его с русскими буквами? Что бы для использования «магических клавиш» не нужно было бы каждый раз менять раскладку.
- :set lhs
* - :nohls (одноразово) или :set nohls (навсегда)
- :help langmap
:help keymap
1. *
2. :noh (обычно вешается на сочетание)
3. Есть, как минимум, два способа, и оба очень легко находятся в гугле. Не ленитесь.
2. :noh (обычно вешается на сочетание)
3. Есть, как минимум, два способа, и оба очень легко находятся в гугле. Не ленитесь.
1. Просто
2.
3.
*
, ищет в файле слово под курсором, плюс нужно включить подсветку :hlsearch
2.
:nohlsearch
для выключения подсветки3.
:set keymap=russian-jcukenwin
и использовать <C-^>
при вставкеВот ещё бесят в различных материалах сочетания клавиш не с привычными Ctrl, Shift, Alt и Win, а непонятно что :)
Это не «сочетания клавиш», это «команды».
Это потому что не на всех клавиатурах Ctrl — это Ctrl.
Вы про С- вместо Ctrl- и S- вместо Shift-? Так это просто сокращения, неужели прямо насколько сложнее читать из-за них?
Сложнее. <C-^> — это Ctrl+6, Ctrl+Shift+6, или Ctrl+<неизвестное-мне-сокращение-^>? Или Escape+<^>, потому что в линуксах esc ведёт себя очень странно и непонятно?
vim ужасен. Он годен на то чтобы быстро отредактировать один файл, если ты точно знаешь где он лежит и как называется. Очень неудобно ориентироваться в дереве каталогов.
Во всех нормальных редакторах я могу сохранить документ одновременным нажатием Ctrt+S, а отменить сделанное Ctrl+Z. Это Всего две клавиши делается очень быстро. В vim это уже делается гораздо сложнее, давайте посчитаем. Мы находимся в режиме редактирования и нужно сохранить файл, нажимаем «esc», ":", «w», «enter», «insert» — пять клавишь вместо двух. Теперь смотрим отмену — «esc», «u», «insert».
Причем в нормальных редакторах мы нажимимаем две клавиши одновременно, а тут 5 или 3 последовательно, что соответственно в 5 и 3 раза медленнее.
Приведу сравнение нескольких операций для сравнения:
Ctrt+S vs esc, :, w, enter, insert
Ctrl+Z vs esc, u, insert
Ctrl+C, Ctrl+V vs. esc, shift+v, esc, p, insert
Ctrl+F vs esc, :, ..., insert
…
Вобщем любые стандартные операции в vim требуют большего количества операций, что вызывает раздражение.
Если одновременно открыть 10 файлов, то экран будет разбит на 10 частей, и в таких маленьких кусочках пространства очень неудобно ориентироваться. Во всех нормалных редакторых есть табы.
Автодополнение работает крайне плохо, и т.д и т.п.
Во всех нормальных редакторах я могу сохранить документ одновременным нажатием Ctrt+S, а отменить сделанное Ctrl+Z. Это Всего две клавиши делается очень быстро. В vim это уже делается гораздо сложнее, давайте посчитаем. Мы находимся в режиме редактирования и нужно сохранить файл, нажимаем «esc», ":", «w», «enter», «insert» — пять клавишь вместо двух. Теперь смотрим отмену — «esc», «u», «insert».
Причем в нормальных редакторах мы нажимимаем две клавиши одновременно, а тут 5 или 3 последовательно, что соответственно в 5 и 3 раза медленнее.
Приведу сравнение нескольких операций для сравнения:
Ctrt+S vs esc, :, w, enter, insert
Ctrl+Z vs esc, u, insert
Ctrl+C, Ctrl+V vs. esc, shift+v, esc, p, insert
Ctrl+F vs esc, :, ..., insert
…
Вобщем любые стандартные операции в vim требуют большего количества операций, что вызывает раздражение.
Если одновременно открыть 10 файлов, то экран будет разбит на 10 частей, и в таких маленьких кусочках пространства очень неудобно ориентироваться. Во всех нормалных редакторых есть табы.
Автодополнение работает крайне плохо, и т.д и т.п.
Странно у меня сохранение тоже на Ctrt+S, юзай map, люк.
Насчет отмены, вот меня бесит что в обычно редакторе для того чтобы отменить действие мне нужно нажать Ctrl+Z столько раз сколько символов ввел до этого, например начал писать код и пока писал придумал вариант получше, в виме просто Esc и u, все отменить.
Меня табы бесят, а вот разбиение экрана на части жутко радует, тут дело вкуса, юзай табы, опятьже.
Насчет отмены, вот меня бесит что в обычно редакторе для того чтобы отменить действие мне нужно нажать Ctrl+Z столько раз сколько символов ввел до этого, например начал писать код и пока писал придумал вариант получше, в виме просто Esc и u, все отменить.
Меня табы бесят, а вот разбиение экрана на части жутко радует, тут дело вкуса, юзай табы, опятьже.
Вы какую-то ерунду написали, к тому же неправильно.
Во-первых, программисты — не писатели. Большую часть времени они редактируют текст, а не пишут новый. Поэтому основным режимом является командный, а значит, не нужно нажимать esc и i. А значит, ctrl-z из двух клавиш превращается в одну.
Копирование-вставка описана неверно. Про поиск я вообще молчу — что за троеточие? Видели звон, да не знаете, где он? Поиск делается одной клавишей — /, а с доп. опцией в конфиге он ещё и инкрементальный. Слово под курсором тоже ищется одной клавишей. Напомните, как с этим в нормальных редакторах?
Открывать 10 файлов в одном окне никому и в голову не придёт. Представьте себе, в виме можно иметь стопицот открытых файлов и в один момент времени редактировать один конкретный, а не все в крошечных сплитах. Привет, табы!
Во-первых, программисты — не писатели. Большую часть времени они редактируют текст, а не пишут новый. Поэтому основным режимом является командный, а значит, не нужно нажимать esc и i. А значит, ctrl-z из двух клавиш превращается в одну.
Копирование-вставка описана неверно. Про поиск я вообще молчу — что за троеточие? Видели звон, да не знаете, где он? Поиск делается одной клавишей — /, а с доп. опцией в конфиге он ещё и инкрементальный. Слово под курсором тоже ищется одной клавишей. Напомните, как с этим в нормальных редакторах?
Открывать 10 файлов в одном окне никому и в голову не придёт. Представьте себе, в виме можно иметь стопицот открытых файлов и в один момент времени редактировать один конкретный, а не все в крошечных сплитах. Привет, табы!
>Во-первых, программисты — не писатели. Большую часть времени они редактируют текст, а не пишут
> новый. Поэтому основным режимом является командный, а значит, не нужно нажимать esc и i. А значит,
> ctrl-z из двух клавиш превращается в одну.
Вы не пишите код чтоли? О_о
А что вы делаете? Только ищите и сохраняете?
Даже если предположить, что программисты не пишут код а редактируют, разве не для этого режим редактирования нужен?
> новый. Поэтому основным режимом является командный, а значит, не нужно нажимать esc и i. А значит,
> ctrl-z из двух клавиш превращается в одну.
Вы не пишите код чтоли? О_о
А что вы делаете? Только ищите и сохраняете?
Даже если предположить, что программисты не пишут код а редактируют, разве не для этого режим редактирования нужен?
Не для этого. И это не режим редактирования, а режим вставки: insert mode.
С названием режима я ошибся, но не в этом суть.
Когда мы захидим в vim мы находимся в командном режиме, мы не можем редактировать или вводить текст.
Если ваше кодирование сводиться к копипасту — скопировал кусок вставил, то этот режим подходит, но это не программирование.
Когда мы захидим в vim мы находимся в командном режиме, мы не можем редактировать или вводить текст.
Если ваше кодирование сводиться к копипасту — скопировал кусок вставил, то этот режим подходит, но это не программирование.
Редактирование состоит в том, чтоб перемещаться по тексту, что-то копировать, что-то удалять, что-то заменять. Это отличается от непрерывного ввода текста. Разница именно в количестве времени, которое вы тратите на ввод и на прочие операции. Сама концепция разных режимов основывается на том, что для разных операций нужны разные кнопкосочетания.
Все, что Вы перечислили делается за миллисекунды на автомате.
> Вобщем любые стандартные операции в vim требуют большего количества операций
А это вообще бред :) Но спорить не буду… Пройдите vimtutor :)
> Вобщем любые стандартные операции в vim требуют большего количества операций
А это вообще бред :) Но спорить не буду… Пройдите vimtutor :)
Если нужно редактировать одновременно несколько файлов — то удобнее сплитскрин. Если нужно быстро перейти к нужному файлу/месту — удобнее правильный поиск. Табы не нужны.
Я спилы использую и для редактирования одного файла, чтобы сразу смотреть в несколько мест.
Табы тоже бывают нужны. Относительно недавно начал ими пользоваться в виме. Например, в одном табе работа с несколькими сплитами по одной задаче, а в другом — такая же ситуация по другой.
Табы в виме это тоже тот еще холивар. Мне табы трудно контролировать в рабочем раше, уже к обеду 100500 набирается, а вот сплитов максимум 9 набирается, на большом мониторе, дальше тесно и мешает просмотру, вобще в один прекрасный день, взял и запретил в настройках использовать табы, тоже самое и со стрелками))
Я для разделения задач использую виртуальные рабочие столы. С учетом того что редактор у меня всегда в полноэкранном режиме, получается то же самое, но места на экране под табы не тратится.
Рабочие столы — это глобальные задачи, типа: браузер, работа, IM и т.д. Так что вовсе не то же самое. :)
Под табы тратится всего одна строчка, где прописаны имена табов.
Под табы тратится всего одна строчка, где прописаны имена табов.
Ну да, глобальные. А зачем держать одновременно несколько локальных?
Что за вопрос? :) Десяток открытых файлов в виме — это обычная ситуация. И при этом их можно аккуратно раскидать по табам, в каждом из которых удобно расположенные сплиты под конкретную задачу.
В таком контексте в принципе согласен. Но лично мне очень редко приходится сплитить один и тот же файл.
Да что Вы у меня зачастую в EmEditor открывается открыто больше 2 десятков файлов, так что сплитскрин отдыхает, если он мне понадобится я его включу, а так — табы рулят.
Ээээ? А как связан сплитскрин с табами? У них немножко разное назначение.
Сплитскрин — чтобы видеть сразу несколько файлов.
Табы — чтобы быстро перейти к нужному файлу.
Я и говорю, что в той же студии с решарпером быстрее нажать Ctrl+T и ввести три буквы из названия класса/функции, чем тянуться мышкой к табу или перещелкивать Ctrl+Tab до нужного места.
Сплитскрин — чтобы видеть сразу несколько файлов.
Табы — чтобы быстро перейти к нужному файлу.
Я и говорю, что в той же студии с решарпером быстрее нажать Ctrl+T и ввести три буквы из названия класса/функции, чем тянуться мышкой к табу или перещелкивать Ctrl+Tab до нужного места.
у меня вим иногда по неделе не закрывается, файлов открытых более двух десятков тоже, а вот сплит скринов при этом открыто от 2 до 9, буферы рулят))
Позволю не согласиться. Да, некоторые сочетания сперва пугают. Но через пару месяцев всё делается на автомате. Я набираю :wi не настолько медленнее, как ctrl+s, до которого ещё надо тянуться мизинцем (эксейп у меня на капсе висит, поэтому никаких проблем не испытываю).
Не совсем понятен кейс. Если вы находились в режиме правки и решили что-то отменить, то, скорее всего, вы отменяете то, что сейчас написали. Это можно стереть с помощью ctrl+w не покидая вставку. Если же вы только что перешли в режим вставки и вам показалось, что стами строками выше допустили опечатку, то для начала вам необходимо будет посмотреть, действительно ли это опечатка, прежде чем делать undo. В обычном редакторе вам придётся для этого скроллить мышкой/pgup/pgdown, в виме же — ctrl+o.
Да и вообще, esc нажимается на автомате, вы даже этого не замечаете, плюс к этому, как мне кажется, ваши примеры в большинстве случаев просто надуманы без реальных ситуаций — в том плане, что вы, судя по примерам, всегда находитесь в режиме вставки, прежде чем производите какое-либо действие, будь то вставка (кстати, в insert mode её можно сделать через ctrl+r * ) или навигация по коду.
Если мы говорим о vim, там есть табы. И в гуи, и в консоли. Однако, все удобства табов нивелируются при одновременной необходимости работы с 15-20 файлами. Тут как раз на помощь приходят буферы с разделением экрана и всякие плагины для навигации по ним типа FuzzyFinder (офигенный плагин. кстати говоря; с ним найти нужный файл среди сотни открытых не составит никаких проблем). У меня, например, на работе вим поделен на две-три вертикальных колонки (монитор 1920): одна для активно редактируемого файла, другие — либо для менее редактируемых, либо для подсмотра какого-то кода.
Ctrl+Z vs esc, u, insert
Не совсем понятен кейс. Если вы находились в режиме правки и решили что-то отменить, то, скорее всего, вы отменяете то, что сейчас написали. Это можно стереть с помощью ctrl+w не покидая вставку. Если же вы только что перешли в режим вставки и вам показалось, что стами строками выше допустили опечатку, то для начала вам необходимо будет посмотреть, действительно ли это опечатка, прежде чем делать undo. В обычном редакторе вам придётся для этого скроллить мышкой/pgup/pgdown, в виме же — ctrl+o.
Да и вообще, esc нажимается на автомате, вы даже этого не замечаете, плюс к этому, как мне кажется, ваши примеры в большинстве случаев просто надуманы без реальных ситуаций — в том плане, что вы, судя по примерам, всегда находитесь в режиме вставки, прежде чем производите какое-либо действие, будь то вставка (кстати, в insert mode её можно сделать через ctrl+r * ) или навигация по коду.
Если одновременно открыть 10 файлов, то экран будет разбит на 10 частей, и в таких маленьких кусочках пространства очень неудобно ориентироваться. Во всех нормалных редакторых есть табы.
Если мы говорим о vim, там есть табы. И в гуи, и в консоли. Однако, все удобства табов нивелируются при одновременной необходимости работы с 15-20 файлами. Тут как раз на помощь приходят буферы с разделением экрана и всякие плагины для навигации по ним типа FuzzyFinder (офигенный плагин. кстати говоря; с ним найти нужный файл среди сотни открытых не составит никаких проблем). У меня, например, на работе вим поделен на две-три вертикальных колонки (монитор 1920): одна для активно редактируемого файла, другие — либо для менее редактируемых, либо для подсмотра какого-то кода.
СОВЕТ
Попробуйте вместо Esc использовать jj для выхода из режима вставки.
Давно привык к этому методу: выполняется намного быстрей, потому что палец уже лежит на j; исчезает проблема задержки после Esc в консоли (в баше Esc — функциональная клавиша, поэтому консоль ожидает пару секунд после нажатия); и Вы не встретите ни одного слова, в котором подряд идут две буквы j, так что с текстом проблем не будет.
Попробуйте вместо Esc использовать jj для выхода из режима вставки.
Давно привык к этому методу: выполняется намного быстрей, потому что палец уже лежит на j; исчезает проблема задержки после Esc в консоли (в баше Esc — функциональная клавиша, поэтому консоль ожидает пару секунд после нажатия); и Вы не встретите ни одного слова, в котором подряд идут две буквы j, так что с текстом проблем не будет.
По Undo. Ну вот к примеру нужно в конфиге временно поменять сервер MySQL, прошелся исправил хост, юзера, пароль, базу, сохранил, протестил, потом вернулся к файлу и несколькими Ctrl+Z вернул прежние настройки. Что для этого нужно сделать в vim?
Что касается табов, отлично с ними работается. Довольно часто много десятков табов открыто в EmEditor. У него куча настроек касающихся табов, в том числе сортировка по активности. Так можно легко делить экран на части, настраивать синхронизацию прокрутки и т.п.
Что касается табов, отлично с ними работается. Довольно часто много десятков табов открыто в EmEditor. У него куча настроек касающихся табов, в том числе сортировка по активности. Так можно легко делить экран на части, настраивать синхронизацию прокрутки и т.п.
Что для этого нужно сделать в vim?
Нажать u
В виме можно просто написать
:earlier 10m
, отменяться все правки сделанные в последние 10 минут. Но вообще я этим не пользуюсь, вот зато есть дерево правок :undolist
по которому можно перемещаться. Дерево, значит команда undo не линейная, это привет от КО :)Что-то не совсем понял как по этому undolist можно перемещаться. Да и дерева не увидел, написано 12 правок, и что дальше?
Дерево будет напечатано, если сделать :echo undotree()
Команда :undol показывает листья дерева, первое число — номер правки, всё время возрастает. Второе число — количество правок, сделанное для достижения этого листа из корня.
Перейти на нужную ветку можно командой :undo номер_правки.
Движение во времени тоже может поместить в другую ветвь.
Команда :undol показывает листья дерева, первое число — номер правки, всё время возрастает. Второе число — количество правок, сделанное для достижения этого листа из корня.
Перейти на нужную ветку можно командой :undo номер_правки.
Движение во времени тоже может поместить в другую ветвь.
Уже несколько лет пользуюсь Vim и жутко не хватает автодополнения для PHP уровня Eclipse. Я, конечно, уже давно смирился, но может кто-то обладает этим тайным знанием и даст волшебную ссылку?
Самое полезное чтиво про VIm — это vimtips, там действительно полезные штуки перечислены.
Ради интереса провел свой любимый тест редакторов. Имею довольно часто дело с большими SQL-дампами. Скачал gVim для винды. И попробовал открыть дамп на 6,3 ГБ (ну такой не самый большой), vim отожрал 2 гига памяти и умер.
EmEditor (который юзаю, как основной, быстрый и всеядный редактор) открыл весь файл легко и непринужденно, сожрав около гига памяти, при этом он в отличии от vim открыл файл с подсветкой SQL, и позволяет крутить вертеть этот дамп как душе угодно, без тормозов.
EmEditor (который юзаю, как основной, быстрый и всеядный редактор) открыл весь файл легко и непринужденно, сожрав около гига памяти, при этом он в отличии от vim открыл файл с подсветкой SQL, и позволяет крутить вертеть этот дамп как душе угодно, без тормозов.
Век живи — век учись. Я вот был уверен, что для больших файлов Вим таки не предназначен, а оно вон как.
Там большие файлы несколько других порядков, если 10 МБ это считается большой, то что говорить о 6 Гигах?
В моем случае это не помогло. Vim также выпал в осадок, создав еще свой swap файл на 2 ГБ.
Хотя у EmEditor в этом плане по-моему вообще нет конкурентов.
В моем случае это не помогло. Vim также выпал в осадок, создав еще свой swap файл на 2 ГБ.
Хотя у EmEditor в этом плане по-моему вообще нет конкурентов.
Там в рецепте же swapfile отключается.
Да, EmEditor решает. К сожалению, официально он стоит дикие тысячи рублей.
Пошел почитал про этот редактор, оказывается еще и винду нужно будет для него покупать, блин :) Вобщем для меня не вариант, я не готов отказаться от линкуса ради редактора, буду дальше мучатся с вимом))
Ну в плане всеядности у него нет равных, так что 40 баксов рабочий инструмент не такие большие деньги. В конце концов он помогает заработать значительно больше. Те же изделия JetBrains тоже не бесплатные, но они того стоят.
часто вы редактируете файлы по 6gb? не лучше ли использовать скрипты и консольные утилиты
Я их не редактирую, но вот просматривать нужно весьма часто. Понятное дело мне не нужно просматривать всё, но пару беглых взглядов на файл в нескольких местах нужно сделать. И ждать пока софтина пытается минут 10 его открыть мне не очень интересно. Поэтому я предпочитаю всеядный редактор, который открывает всё, любых размеров, а не смотреть сначала на размер файла и думать, чем открыть файл.
Для просмотра есть less, grep, etc
Это для тех случаев когда знаешь что нужно искать. А мне, к примеру, нужно посмотреть не битая ли кодировка внутри SQL файла, и если да, то как именно, поскольку в этом деле уже большой опыт, достаточно беглого взгляда на файл, что вы будете искать с помощью grep, если Вы видите файл первый раз в жизни, и ничего конкретного вы там не ищите.
Есть такое дело, Vim к сожалению грузит весь файл в память :(
Блин, ночью плохо спал, все думал зачем может понадобиться открывать текстовый файл больше гига? Если я хочу там чтото найти или заменить, то буду использовать подходящий инструмент(grep, sed, awk и тд) с сохранением результатов в файл. Если мне нужно следить за лог файлом, то буду использовать tail. И на крайний случай, если действительно нужно сделать сложные правки в большом файле, руками я это делать не буду точно, даже если есть такая возможность, лучше написать скрипт на питоне, который будет читать файл потоком и вносить изменения. И если предположить совсем не вероятное, что без правок руками вообще не обойтись, то можно просто разделить файл командой split и работать в любимом редакторе с частями, после чего так же просто соединить их в один, это дополнительно две команды.
Зачем редактору текста возможность читать монструозные файлы, есть другие инструменты, редактор не про это. Поправьте меня если я не прав…
Зачем редактору текста возможность читать монструозные файлы, есть другие инструменты, редактор не про это. Поправьте меня если я не прав…
Вот что пишет автор ne, у которого ноги растут еще из Amiga, о причинах портирования и дальнейшего развития редактора
«If you have the resources and the patience to use emacs or the right mental twist to use vi then probably ne is not for you. However, if you need an editor that (очень много вкусностей)» то обратите внимение на ne…
:-)
«If you have the resources and the patience to use emacs or the right mental twist to use vi then probably ne is not for you. However, if you need an editor that (очень много вкусностей)» то обратите внимение на ne…
:-)
1) Друзья, как в вас влезает столько инфы? 10 синтаксисов ЯП, баш, make, консоль (туча команд), кеймапы 1-2 IDE, Фотошопа, браузера, а на закуску — Вим или Емакс. Мой список вполовину короче, но в последнее время лишний раз лезу в меню/маны/гугл, потому что на память путаю клавиши и слова.
2) Вим действительно актуален для кого-либо кроме веб-девелоперов и верстальщиков? Какая разница, с какой скоростью напечатать 20 строчек в день?
2) Вим действительно актуален для кого-либо кроме веб-девелоперов и верстальщиков? Какая разница, с какой скоростью напечатать 20 строчек в день?
Какая разница, с какой скоростью напечатать 20 строчек в день?Этот аргумент ещё любят приводить люди, набирающие двумя пальцами, мол зачем вам слепой десятипальцевый метод, если вы пишете по 20 строчек в день. Так вот, слепой десятипальцевый метод нужен для того, чтобы мысль не тормозилась скоростью набора. Чтобы набор текста не отвлекал от идеи. Точно так же и с редактированием. Мне, например, просто очень неприятно осознавать, что я делаю что-то слишком уж неэффективно. Что я трачу 5*N времени на то, на что мог бы потратить N. И абсолютные числа не имеют значения, значение имеет то, что быстро набирать вслепую банально приятно и удобно, и время, потраченное на обучение слепому набору, окупается с лихвой. Это как кататься на велосипеде, не пользуясь дополнительными колёсиками сзади, в конце концов, если вы проезжаете по 1 км в день, это можно делать и с колёсиками или даже на трёхколёсном велосипеде.
Точно так же и с редактированием в Vim.
>мол зачем вам слепой десятипальцевый метод, если вы пишете по 20 строчек в день.
Человеку, который пишет всего (не только кода) по 20 строчек в день, 10-пальцевый метод действительно ни к чему. Я например им и не владею. Ну это так, к слову.
Аналогия неверная. Набирать вслепую действительно удобно и приятно, а редактировать в Vim — нет, потому что 1) это не IDE (нет инспекций и нетривиальных рефакторингов) 2) см. риторический вопрос про «инфу». Если IDE — самокат, то Vim — отнюдь не велосипед, а болид Формулы-1. Которым надо уметь управлять и ветерок летний не дует.
Человеку, который пишет всего (не только кода) по 20 строчек в день, 10-пальцевый метод действительно ни к чему. Я например им и не владею. Ну это так, к слову.
Аналогия неверная. Набирать вслепую действительно удобно и приятно, а редактировать в Vim — нет, потому что 1) это не IDE (нет инспекций и нетривиальных рефакторингов) 2) см. риторический вопрос про «инфу». Если IDE — самокат, то Vim — отнюдь не велосипед, а болид Формулы-1. Которым надо уметь управлять и ветерок летний не дует.
Это же всё субъективно. Кому-то приятно набирать вслепую, кто-то не видит разницы между двухпальцевым набором и десятипальцевым. Кому-то приятно редактировать в Vim, кому-то обязательно нужно всеми правдами и неправдами сделать из этого текстового редактора IDE и потом обвинять это IDE в неполноценности. Это кстати ответ и на комментарий develop7 ниже.
Можно поставить вопрос по-другому: никто не хочет тратить время на разработку того, что в общем то и не нужно :) Думаете, никто бы не озадачился разработкой нужных плагинов, если бы был большой спрос?
Вы абсолютно правы ))
Только вот это ничуть не умаляет возомжностей редактирования текста, ради которых все на виме и сидят )
Наверное потому что вим это консолный редактор, и все гуишное ему чуждо, ну кроме табов :) Или возможно почитатели вима по совместительству являются почитателями unix-way, который гласит:
Вим на самом деле редактор и с редактирование текста справляется отлично. Так же он отлично взаимодействует с другими консольными программами. Для меня Вим + Консоль это мощный инструмент разработки, ну и плюс браузер конечно, больше ничего не нужно.
Пишите программы, которые делают что-то одно и делают это хорошо.
Пишите программы, которые бы работали вместе.
Пишите программы, которые бы поддерживали текстовые потоки, поскольку это универсальный интерфейс
Вим на самом деле редактор и с редактирование текста справляется отлично. Так же он отлично взаимодействует с другими консольными программами. Для меня Вим + Консоль это мощный инструмент разработки, ну и плюс браузер конечно, больше ничего не нужно.
Так.
С навигацией в виме все хорошо, есть дерево каталогов, но им пользуюсь редко, только если нужно открыть конкретный файл, в основном пользуюсь переходом по к классам и методам(ctags).
Go to definition просто
Find usages просто grep.
Show source это гуишная штука, я обычно предпочитаю переход(ctags).
Переименовывания тегов, в плагинах есть функция переименовать парный тег.
Переименовать element class сразу во всём проекте, можно использовать поиск и замену.
С навигацией в виме все хорошо, есть дерево каталогов, но им пользуюсь редко, только если нужно открыть конкретный файл, в основном пользуюсь переходом по к классам и методам(ctags).
Go to definition просто
gd
, иногда глючит, но я пользуюсь переходом к методу или подсветкой названия переменной.Find usages просто grep.
Show source это гуишная штука, я обычно предпочитаю переход(ctags).
Переименовывания тегов, в плагинах есть функция переименовать парный тег.
Переименовать element class сразу во всём проекте, можно использовать поиск и замену.
По исходникам хожу просто <C-]> перейти в метод или класс, <C-t> вернуться обратно, базовая операция.
С grep проблем не было, простой и гибкий инструмент. Если на проекте нормальная структура то искать использование проблемы не составляет, иначе нужно будет отсеивать не нужные варианты самому.
При поиске и замене в случае классов в css, html, js нужно будет сделать две простые замены, с элементарными регэкспами, если делаешь это часто можно написать скрипт или команду в вим.
Вообще про IDE уже писали в этом посте, что например PyCharme из-за всех его наворотов на больших проектах начинает тормозить. Я вот сейчас поставил анализаторы кода в вим, изначально сделал чтобы он после сохранения запускал их, при этом была секундная задержка, вроде мелочь, но для меня просто огромный delay, в итоге сделал отдельный контрол для запуска анализатора + асинхронный вызов для отображения количества количества ошибок после сохранения.
С grep проблем не было, простой и гибкий инструмент. Если на проекте нормальная структура то искать использование проблемы не составляет, иначе нужно будет отсеивать не нужные варианты самому.
При поиске и замене в случае классов в css, html, js нужно будет сделать две простые замены, с элементарными регэкспами, если делаешь это часто можно написать скрипт или команду в вим.
Вообще про IDE уже писали в этом посте, что например PyCharme из-за всех его наворотов на больших проектах начинает тормозить. Я вот сейчас поставил анализаторы кода в вим, изначально сделал чтобы он после сохранения запускал их, при этом была секундная задержка, вроде мелочь, но для меня просто огромный delay, в итоге сделал отдельный контрол для запуска анализатора + асинхронный вызов для отображения количества количества ошибок после сохранения.
Вы высасываете из пальца проблемы, которые нормальный консольный линуксоид даже не замечает. Вы не верите в силу грепа!? Еретик! ;)
Возможно, но я никогда не заморачивался по этому поводу. Дописываешь еще одну-две буквы к слову и вариантов остается не так уж и много. Развивайте скорость печати, друг мой, и не будет у Вас проблем автодополнением ))
А если Вы скажете в очередной раз, что автодополнение используется для изучения новой библиотеки, то я еще раз повторюсь: изучите библиотеку сами до её использования.
А если Вы скажете в очередной раз, что автодополнение используется для изучения новой библиотеки, то я еще раз повторюсь: изучите библиотеку сами до её использования.
Вы такой забавный :) Во всех моих словах видите только то, что Вам нужно :)
Давайте тогда Вас потроллим Вашими же способами. Зайдите на vimgolf.com и повыполняйте задания оттуда в своей любимой IDE (конечно же, Вы этого делать не будете, а просто скажете, что мышкой и сочетаниями «ctrl+стрелочки» вы выполняете их за пять секунд, и вим тут не нужен).
Давайте тогда Вас потроллим Вашими же способами. Зайдите на vimgolf.com и повыполняйте задания оттуда в своей любимой IDE (конечно же, Вы этого делать не будете, а просто скажете, что мышкой и сочетаниями «ctrl+стрелочки» вы выполняете их за пять секунд, и вим тут не нужен).
Интересно, есть ли хоть один человек, который знает стандартную библиотеку PHP наизусть… Хотя бы функции работы со строками и массивами… Так, к слову :)
И еще… дабы не писать одно и то же в каждой ветке про вим, вот мой коммент из другого топика про автодополнение и прочие «полезные» фишки IDE.
habrahabr.ru/post/140164/#comment_4688231
habrahabr.ru/post/140164/#comment_4688231
в vim есть clang-complete. лучше не бывает.
20 строчек комитится, а пишется гораздо больше. Иногда ради двух строчек надо сначала 200 написать :)
Я не буду участвовать в холиваре про сложность Vim.
Я не буду участвовать в холиваре про сложность Vim.
Я не буду участвовать в холиваре про сложность Vim.
Я не буду участвовать в холиваре про сложность Vim.
Я не буду участвовать в холиваре про сложность Vim.
Познакомился с vi/vim еще в далеком 96ом когда сидел по telnet на забугорном сервере через модем 2400. Плевался много но потом понял что с таким лагом это реально единственное средство. За годы глаз стал уже намётанным и позволяет сходу вычислять кол-во строк, слов, символов, для перехода, замены, удаления. Сейчас если надо отредактировать текстовый файл в Win то вместо notepad всегда открываю vim.
Ох уж фанатики!
Также существуют тысячи причин, почему вы должны использовать Vim. У меня к вам один единственный вопрос — почему вы до сих пор этого не делаете?
Я не использую Vim из-за большой зависимости от Visual Studio + Visual Assist X и еще из-за лени.
Больше всего в моей работе с Visual Studio меня напрягает навигация по тексту при помощи мышки, ее невозможно довести до автоматизма. Это особенно заметно в контрасте со слепым набором.
В последнее время я занялся изучением Emacs. Я надеялся использовать схему Emacs в Visual Studio, но к сожалению она оказалась кривой (например нажатие клавиши Alt переводит фокус на главное меню). В общем до использования в рабочее время дело пока что не дошло, т.к. сильно отвлекает от работы.
В дальнейшем планирую попробовать Vim, но только как дополнение к Visual Studio, т.к. не вижу смысла отказываться от ее плюшек, по крайней мере пока.
Может кто даст совет как улучшить навигацию по тексту в Visual Studio другими способами, не прибегая к использованию столь кардинальных подходов как Emacs или Vim?
Никак :) давно, когда писал под винду, озадачивался этой проблемой, в итоге сначала использовал вим рядом со студией, а потом плюнул на это гиблое дело (ибо вим под виндой бесит неимоверно) и редактировал все файлы в линуксе, а винда была на виртуалке для компиляци. И для «трололо»: скорость работы от переключения в виртуалку, чтобы скомпилить (пусть даже каждые десять минут) не падала, т.к. за эти десять минут я с удовольствием и в достаточно большом темпе успевал сделать то, на что в студии убил бы все двадцать.
А еще приходилось делать макросами такое, что в студии возможно только переписыванием файла с нуля (редактировал огромнейший файл проекта с переназначением id контроллов, да здравствует mfc))
А еще приходилось делать макросами такое, что в студии возможно только переписыванием файла с нуля (редактировал огромнейший файл проекта с переназначением id контроллов, да здравствует mfc))
После установки Vim на Win 7 x64 Prof, хоткей Ctrl-Shift-C стал запускать Vim. Где это настраивается/отключается — найти не смог и гуглежом тоже.
Ctrl-Shift-C — часто используется в фотошопе для копирования с объединением слоев, в случае установки Vim — этот хоткей невозможно использовать.
Ctrl-Shift-C — часто используется в фотошопе для копирования с объединением слоев, в случае установки Vim — этот хоткей невозможно использовать.
в винде вим — страшное дело :)
Вы Vim качали с www.vim.org или по ссылке из статьи? Потому что за инсталлятором с офсайта я ни разу такого не замечал, чтобы он шорткаты на вызов Vim куда-то прописывал.
Попробуйте в старт меню найти ярлык, который запускает Vim и в свойствах у него проверить Shortcut Key на закладке Shortcut. Если у вас ещё есть ярлык на рабочем столе или в быстром запуске — проверьте Shortcut Key и у них тоже.
Попробуйте в старт меню найти ярлык, который запускает Vim и в свойствах у него проверить Shortcut Key на закладке Shortcut. Если у вас ещё есть ярлык на рабочем столе или в быстром запуске — проверьте Shortcut Key и у них тоже.
мои пять копеек: так как у меня все начиналось с мсдос, то сначала я думал что mcedit это и есть то что мне нужно. Вместе с gentoo пришел nano со всей своей простотой и удобством. Он сопровождает меня и по сей день. А если править много и с логикой, то на помощь всегда приходят sed+awk. В таком режиме я редактирую и правлю все последние лет 6, а на vim смотрю как на славную добрую пирамиду Хеопса; тешу себя что вернусь к нему чуть позже.
Спасибо за статью.
Подскажите — есть-ли сочетание клавиш для перехода в коммандный режим, кроме ESC, а то тянуться далеко :)
Подскажите — есть-ли сочетание клавиш для перехода в коммандный режим, кроме ESC, а то тянуться далеко :)
ТОП-10 подводных камней, на которые вы можете наткнуться при переходе на Vim