LINUX.ORG.RU
ФорумTalks

как пересесть на vim?


0

0

посоветуйте, как бы так привыкнуть работать в vim? сколько раз пытаюсь — всё равно он меня дико бесит. привык я к немодальным редакторам. к тому же «искаропки» у меня даже autoindent'а нет. читать тонны документации, чтобы выяснить нужное заклинание (не только на autoindent) — неохота. у меня куча книг нечитана (SICP в том числе), тратить время ещё и на vim?

ну, базовые команды — это понятно: tutorial асилил. а дальше — всё. чуть надо что сложнее, чем «встативть буковку/удалить буковку» — я с матом возвращаюсь на joe/mcedit. потому что в них я могу сосредоточиться на том, ЧТО пишу, а не на том, КАК мне победить в неравной битве с редактором.

ещё хочу раскраску с синеньким фоном (a-la mcedit).

я к чему это всё: нутром чую, что vim будет удобней и продуктивней, ежели я его освою. но вот как раз освоению эта зараза сопротивляется. прошу совета: как его победить?

«сесть и работать», «снести joe/mcedit», etc. не подходят. «поставь emacs» тоже. прошу зубоскалить умеренно, ибо совет нужен на полном серьёзе.

tnx.

anonymous

http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

здесь есть оригинальные cheat sheet'ы для запоминания основных команд. может быть пригодится. а вообще - видимо, стоит себя пересилить и не возвращаться на joe/mcedit, и через некоторое время все получится.

ЗЫ. я вот, правда, после 5 лет использования vim'а ушел на emacs (только на удаленных серверах vi использую) и рад :)

vden ★★
()

Меня на vi (без m) жизнь суровая пересадила, необходимость что-то постоянно править удалённо со скоростью около 300бод. :)

anonymous
()
Ответ на: комментарий от phasma

смотрел на шоты. охота именно консольный. к тому же gvim у меня вообще намертво вешает иксы и лочит клаву, зараза — чтобы даже ctrl+alt+bs не спасло. сборка из исходников с офсайта.

anonymous
()
Ответ на: комментарий от anonymous

> смотрел на шоты. охота именно консольный. к тому же gvim у меня вообще намертво вешает иксы и лочит клаву, зараза — чтобы даже ctrl+alt+bs не спасло. сборка из исходников с офсайта.

а из портов, иль пакетного менеджера ?

phasma ★☆
()
Ответ на: комментарий от vden

>здесь есть оригинальные cheat sheet'ы для запоминания основных команд. может быть пригодится.

tnx, посмотю всенепременно.

>видимо, стоит себя пересилить и не возвращаться на joe/mcedit, и через некоторое время все получится.

это-то понятно, что сработает. но дело в том, что если я запускаю редактор, то следовательно у меня есть желание поработать именно над кодом. если я начинаю сражаться с редактором, желание делать код испаряется — и капец. а сесть «просто понабирать бессмысленную лабуду» не могу — скучно. потому и прошу совета, как бы так и за vim сесть, и рыб^W код писать. %-)

> я вот, правда, после 5 лет использования vim'а ушел на emacs

может, потом дорасту. пока оно меня никак не радует.

anonymous
()
Ответ на: комментарий от anonymous

дык «что-то поправить» я могу. а вот нормально писать в нём — нет. %-)

anonymous
()
Ответ на: комментарий от phasma

>а из портов, иль пакетного менеджера ?

из родного тарбола при помощи ./configure && make && make install

anonymous
()

начните с малого - попользуйте с минимальной функциональностью
потом потихоньку наращивайте сложность
потом вас за уши не отащишь ;)

hizel ★★★★★
()
Ответ на: комментарий от madcore

штука в том, что идея модальных редакторов мне вполне нравится (когда-то в форте как раз таким и пользовался). нужен способ «тихо и незаметно» (ц) перейти. как-то сгладить порог обучения.

anonymous
()

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

aiker ★★
()
Ответ на: комментарий от hizel

>начните с малого — попользуйте с минимальной функциональностью

пытаюсь. минимальная функциональность пригодна для «hello, world». что-то серьёзней с минимульной удобно так же, как набор исходников при помощи cat. например, я туплю дико: не нашёл, как сделать автодополнение a-la mcedit. точно знаю, что можно, но заклинания не нашёл. желательно ещё, чтоб эта фигня на alt+tab висела. и список выдавала, если есть несколько вариантов.

anonymous
()
Ответ на: комментарий от aiker

да, пытаюсь примерно так же. но вот, например: http://www.linux.org.ru/jump-message.jsp?msgid=2675191&cid=2675242&pa...

плюс цветовая схема — тоже хочется из mcedit. первое — vitality, схема вроде мелочь, но без неё тоже неудобно. что, схему таки руками делать? %-(

//капча: figter

anonymous
()
Ответ на: комментарий от phasma

а. из пакетов gvim вроде работал пол-года назад. однако ж оно не консоль. я joe и mcedit юзаю именно из-за консольности, так-то всяких гуёвин и понавороченей есть. неконсоль неудобна по определённым причинам (лень расписывать, да и не важны они в данном случае).

anonymous
()
Ответ на: комментарий от anonymous

> а. из пакетов gvim вроде работал пол-года назад. однако ж оно не консоль. я joe и mcedit юзаю именно из-за консольности, так-то всяких гуёвин и понавороченей есть. неконсоль неудобна по определённым причинам (лень расписывать, да и не важны они в данном случае).

там просто есть меню и напротив указаны команды для выполнения той или иной функции, может поможет запомнить.

phasma ★☆
()

Что ж сказать... Я почти сразу после vimtutor пересел. Мне хватило чуть-чуть почитать справочник по базовым командам. Я понял идею vim'а. И всё, теперь не оттащишь.

JackYF ★★★★
()

А какой смысл вообще насиловать себя и пересаживаться на неудобный тебе лично редактор?

Sikon ★★★
()
Ответ на: комментарий от phasma

да проблема не столько в командах, сколько в совокупности всего вместе. в том числе и в переменных, которые отвечают за поведение редактора. в принципе, базу ввода/копирования/удаления текста я вполне усвоил. а дальше по ветке я описывал — надо перекрасить, надо автодополнение. хотелось бы, чтобы help умел выскакивать в окне, а не в отдельном буфере (как сделано в joe). и всё это в консоли. ну, если никак от консоли не добиться — будем мучать gvim, да. но может? надеюсь на чудо. %-)

anonymous
()
Ответ на: комментарий от Sikon

неудобен он именно в силу незнания. сама идея модальных редакторов как раз удобна (см. выше моё упоминание форта).

anonymous
()
Ответ на: комментарий от JackYF

идею я ещё 10 лет назад понял, когда на форте с блок-ориентированым редактором писал. главный вопрос — как понизить «порог вхождения». тутора мало, он совсем базовый. а дальше всё или для продвинутых, или для очень продвинутых. вот если бы там был поиск a-la google вмонтирован… :help how to do <xyz>, :help как ограбить корован…

anonymous
()

> «сесть и работать», «снести joe/mcedit», etc. не подходят. «поставь emacs» тоже. прошу зубоскалить умеренно, ибо совет нужен на полном серьёзе.

Вопрос звучит странно. Хочу научиться, но без траты времени. Наверное гипнотизер поможет.

Это же всего-навсего навык, а он должен нарабатываться. До автоматизма.

anonymous
()
Ответ на: комментарий от anonymous

это тоже понятно. но по извечномы стремлению к халяве хочется как-нибудь так, попроще. в идеале, натурально, чтобы уснуть и проснуться вимером… %-)

anonymous
()
Ответ на: комментарий от amoralyrr

табы WM — это одно. а табы софтины — совсем другое. и, к сожалению, в JWM табов нет. %-((

anonymous
()

Начни с `C-h t`, потом полистай «The Emacs Editor» и начинай переносить свои задачи в эту среду.

Sphinx ★★☆☆
()

Во-первых напишите такой ~/.vimrc 
Это практически дефолтный файл, во многих дистрибутивах он лежит в /usr/share/doc/vim/examples/vimrc.gz или что то похожее.
С ним vim будет уже значительно интереснее, чем дефолтная поставка.

set nocompatible
syntax on
if has("autocmd")
  au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
    \| exe "normal g'\"" | endif
endif
if has("autocmd")
  filetype indent on
endif
set showcmd             " Show (partial) command in status line.
set showmatch           " Show matching brackets.
set ignorecase          " Do case insensitive matching
set smartcase           " Do smart case matching
set incsearch           " Incremental search
set autowrite           " Automatically save before commands like :next and :make
set hidden             " Hide buffers when they are abandoned
set mouse=a             " Enable mouse usage (all modes) in terminals

set encoding=utf-8
set tabstop=8
set shiftwidth=4
set expandtab
set nowrap
set bg=dark

Вникать в смысл можно но не обязательно.

Сначала нужно отвыкнуть от стрелочек. Они не нужны. Не используйте их в vim-е вообще никогда. jkhl и всё.
Далее, нужно привыкать к <Esc> и вообще режимам. Они переключаются часто и на полном автомате. <Esc>ddO и т.д.
Ещё нужно до автоматизма отладить копипаст. Это <Esc>VjjykkkkkkP как то так. Он в vim-е очень удобен, когда привыкнешь.
Автодополнение — <Ctrl>+N, хотя я его почти никогда не использую.
Ну много ещё всякого, просто пальцы через некоторый период всё запоминают и мозг уже не думает про это, как не думает про то, где какая буква расположена на клавиатуре.

Отдельно стоит рассмотреть превращение vim в IDE-монстра. Есть куча плагинов для автодополнения и прочего.
Я как то долго с ними возился, в итоге забил и юзаю дефолтовый vim. 
Мне в vim-е важна скорость редактирования а не автодополнение. Для последнего я использую eclipse :)

Legioner ★★★★★
()
Ответ на: комментарий от Sphinx

начинал. листал. редкий ужосна.

anonymous
()

Нужно просто избавиться от всех других редакторов. Через 2-3 дня привыкнешь и все будет ок. Vim реально очень удобен.

smh ★★★
()
Ответ на: комментарий от Legioner

>Вникать в смысл можно но не обязательно.

обязательно. буду, всё-таки, читать доки до полного понимания. я ж не бубунтоид, чтобы заклинания копировать. %-)

>Сначала нужно отвыкнуть от стрелочек. Они не нужны. Не используйте их в vim-е вообще никогда. jkhl и всё.

почему? ну, кроме того, что к стрелкам надо тянуться, а jkhl рядышком — меньше движений рукой. видимо, поэтому. оправдано, согласен.

>Далее, нужно привыкать к <Esc> и вообще режимам.

это как раз не проблема, я уже использовал модальные редакторы.

>Ещё нужно до автоматизма отладить копипаст. Это <Esc>VjjykkkkkkP как то так. Он в vim-е очень удобен, когда привыкнешь.

это я ещё по тутору заметил. весьма удобно, да.

>Автодополнение — <Ctrl>+N, хотя я его почти никогда не использую.

осталось вычитать, как его забиндить на alt+tab. imap'ом, что ли?

>Отдельно стоит рассмотреть превращение vim в IDE-монстра.

я ж писал про mcedit и joe — так что это неактуально. %-)

>Мне в vim-е важна скорость редактирования а не автодополнение. Для последнего я использую eclipse :)

мне не надо автодополнять имена из стандартных библиотек, подсказки по параметрам и прочее. мне достаточно, чтобы он поискал по файлу выше слово и выдал мне список дополнений. у меня привычка писать довольно длинные имена для типов и функций. %-)

в общем, tnx. пошёл забираться с примером настроек (правда, одну строку я уже понял и выкинул — encoding=UTF8; а табстопы=2 %-).

anonymous
()
Ответ на: комментарий от smh

да, этот вариант я рассматриваю. но лень пересобирать mc без mcedit. %-) а без mc как-то некомфортно (хотя 99% времени оно у меня с отключеными панелями, и нафига я его запускаю — не знаю %-).

anonymous
()
Ответ на: комментарий от anonymous

> почему? ну, кроме того, что к стрелкам надо тянуться, а jkhl рядышком — меньше движений рукой. видимо, поэтому. оправдано, согласен.

а это как раз один из основных моментов, суть в том что ты не отрываешь рук с дефолтных позиций и всякие функции редактора вливаются в процесс набора (слепой метод для понимания концепции обязателен).

> осталось вычитать, как его забиндить на alt+tab. imap'ом, что ли?

не стоит, Ctrl+n гораздо удобнее исходя из вышесказанного мной

> я ж писал про mcedit и joe — так что это неактуально. %-)

все-таки полезно подрубить хотябы Taglist, и некоторые специфичные для яп расширения

> мне не надо автодополнять имена из стандартных библиотек, подсказки по параметрам и прочее. мне достаточно, чтобы он поискал по файлу выше слово и выдал мне список дополнений. у меня привычка писать довольно длинные имена для типов и функций. %-)

в семерке искаропковое дополнение которое к томуже следит за частоиспользуемостью слов (т.е. недавние стоят ближе в меню), настоятельно рекомендую поставить .deb, консольный vim должен обязательно быть в одном из пакетов, хотя как мне показалось он работает несколько медленней.

> в общем, tnx. пошёл забираться с примером настроек (правда, одну строку я уже понял и выкинул — encoding=UTF8; а табстопы=2 %-).

настройки можно размещать прямо в исходике разместив их в комментарии

/** vim: tapstop=2 **/

мегаудобно:) ну и вообще еще много полезного

Syncro ★★★★★
()

Искаропки Cream уже неплохо настроен. И Фолдинг и хайлайтинг и все остальное уже есть.

http://cream.sourceforge.net/features.html

Хотя почему-то не поддерживает gtk-шные иконки дефолтной темы, из-за чего выглядит немного убого :(

anonymoos ★★★★★
()
Ответ на: комментарий от madcore

>сабж звучит типа "как научиться курить"

нее... звучит "Как стать сектантом?"

zort
()
Ответ на: комментарий от Syncro

> а это как раз один из основных моментов, суть в том что ты не отрываешь рук с дефолтных позиций и всякие функции редактора вливаются в процесс набора (слепой метод для понимания концепции обязателен).

Может объяснишь как ты нажимаешь ESC, не перемешая лапы с дефолтных позиций? Я в Emacs (при отсутствии Meta) такое всегда делаю по ^[ и когда запускаю nvi тоже. Может объяснишь какой длины твой кисти и каким образом ты достаешь до православной клавиши? Или ты ее не трогаешь и в `:' переходишь по `meta-:', т.к. meta и так генерирует ESC?

anonymous
()
Ответ на: комментарий от Syncro

>настоятельно рекомендую поставить .deb

вот мне в слаке ещё дебианского крапа не хватало. %-)

anonymous
()
Ответ на: комментарий от anonymoos

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

anonymous
()
Ответ на: комментарий от anonymous

Я обычно нажимаю безымянным пальцем. При этом указательный лежит на F. Хотя у меня пальцы достаточно длинные. В принципе некоторые Caps Lock биндят на Esc, хотя я его биндю на Alt обычно, ибо ещё и Emacs использую.

Legioner ★★★★★
()
Ответ на: комментарий от anonymous

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

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

>тогда как уход на курсор совершенно сбивает с процесса.

факт. впрочем, я не печатаю правильным десятипальцевым, у меня пальцы по всей клаве летают. увы — надо бы заняться и поправить это, но всё как-то лениво.

anonymous
()
Ответ на: комментарий от anonymous

>Может объяснишь как ты нажимаешь ESC, не перемешая лапы с дефолтных
>позиций? Я в Emacs (при отсутствии Meta) такое всегда делаю по ^[ и
>когда запускаю nvi тоже. Может объяснишь какой длины твой кисти и 
>каким образом ты достаешь до православной клавиши? Или ты ее не 
>трогаешь и в `:' переходишь по `meta-:', т.к. meta и так генерирует 
>ESC?

Кстати, а <C-o> не канает? У меня большинство команд normal mode
именно через него.

>факт. впрочем, я не печатаю правильным десятипальцевым, у меня 
>пальцы по всей клаве летают. увы — надо бы заняться и поправить это, 
>но всё как-то лениво.

Кстати, для изучения слепого метода я в свое время просто поставил
другую раскладку клавиатуры (http://www.kaufmann.no/roland/dvorak/)
и полез в консоль набирать 16-символьный пароль root на скорость(60s
timeout). Набрал только после довольно большого количества попыток,
но теперь набираю довольно шустро. Ну и несколько поменял назначения
некоторых клавиш:
CapsLock  -> Control_L
Control_L -> Escape
Escape    -> CapsLock
Win       -> Control (для того, чтобы в Opera было удобно <C-Tab>
                      использовать)

Еще, кстати, можно ','  в Vim'е в качестве "dead key" использовать ---
очень удобно (только не надо ее модификатором в X'ах делать, то что я
предлагаю --- всего лишь за'map'ить последовательности ",<NotSpace>",
ибо после запятой почти всегда пробел, а потом уже что-то еще, хотя
в моих ранних программах (т.е. примерно месяц назад) после запятой
зачастую никакого пробела не было. Но я над своим стилем еще работаю.

Кстати, в :help'е нашлася замечательная функция, map'ящая на <Tab>
либо пробел, либо <C-n>. Смотреть ":helpg CleverTab"

>настройки можно размещать прямо в исходике разместив их в комментарии

Кстати, смотрим :h modelines и понимаем, что туда всего не засунешь.
Ради интереса пробовал писать эту настройку в файле --- игнорирует.
Зато есть :set exrc. Перед использованием прочитать :h 'exrc' и
убедиться, что всякие шутники доступа к компьютеру не имеют

>>Автодополнение — <Ctrl>+N, хотя я его почти никогда не использую. 
>
>осталось вычитать, как его забиндить на alt+tab. imap'ом, что ли?

Да, но сначала обепечить, чтобы <A-Tab> не перехватываля ни X'ами,
ни консолью.

>> осталось вычитать, как его забиндить на alt+tab. imap'ом, что ли? 
>
>
>не стоит, Ctrl+n гораздо удобнее исходя из вышесказанного мной

<Tab> еще удобней. Тем более, если не перемещать никуда Control

>мне не надо автодополнять имена из стандартных библиотек, подсказки 
>по параметрам и прочее. мне достаточно, чтобы он поискал по файлу 
>выше слово и выдал мне список дополнений. у меня привычка писать 
>довольно длинные имена для типов и функций. %-)

:h 'complete'
Длинные имена функций я тоже пишу, но это не мешает пользовать и
поиском соответствий по включенным файлам.

>оторвать пальцы чтобы нажать еск не опасно, т.к. рука возвращается 
>на место (под указательным есть засечка для ориентации, но обычно 
>кисть помнит куда возвращаться), тогда как уход на курсор совершенно 
>сбивает с процесса.

Все равно долго руку куда-то тянуть. <C-o> в этом отношении удобнее.
Ну или см. выше, что я сделал с Control_L.

ZyX
()
Ответ на: комментарий от ZyX

>Кстати, а <C-o> не канает?

неа, с миднайтом ругается. кстати, как его перемапить в виме?

>я в свое время просто поставил другую раскладку клавиатуры (http://www.kaufmann.no/roland/dvorak/)

да, я уж пол-года на дворака посматриваю. но инерционность мешает перейти — как и на вим.

>Да, но сначала обепечить, чтобы <A-Tab> не перехватываля ни X'ами, ни консолью.

это понятно. никто не перехватывает, ибо нефиг. %-)

><Tab> еще удобней

кстати! я ж всё равно не использую её по назначению. tnx.

>Длинные имена функций я тоже пишу, но это не мешает пользовать и поиском соответствий по включенным файлам.

полезно, не спорю.

anonymous
()
Ответ на: комментарий от anonymous

>неа, с миднайтом ругается. кстати, как его перемапить в виме?

Если использовать vim вместо встроенного редактора и вызывать по <F4>,
то не ругается. Если вызывать из командной строки --- то тоже все
нормально (во framebuffer'е), но <C-o>, конечно же, перехватывается mc
(это я к тому, что у меня одно время получался черный экран при
переходе обратно на vim). А что, что-то типа ":inoremap ,n <C-o>" не
работает? У меня все нормально.

>да, я уж пол-года на дворака посматриваю. но инерционность мешает
>перейти — как и на вим.

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

ZyX
()

> у меня куча книг нечитана (SICP в том числе), тратить время ещё и на vim?

Ты неверно расставляешь приоритеты. Вот скажи, был бы ты мясником, ты бы тоже говорил: мне некогда тут топор точить, мясо рубить надо, да? Если тебе действительно приходится много писать и редактировать текст, то врем,я использованное на овладение инструментом, нельзя назвать "потраченным".

CkuB
()
Ответ на: комментарий от ZyX

>Если использовать vim вместо встроенного редактора и вызывать по <F4>, то не ругается.

надо проверить, да. tnx.

>это я к тому, что у меня одно время получался черный экран при переходе обратно на vim

это vim не перерисовывает себя (что логично, потому что и vim, и mc юзают второй экран, вот и дерутся).

>А что, что-то типа «:inoremap ,n <C-o>» не работает? У меня все нормально.

посмотрим.

>убрать английские буквы с клавиатуры, чтобы не возникало желания на них смотреть мне было еще ленивее.

это проще: их всё равно тупо не видно сейчас. %-)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.