LINUX.ORG.RU

Хочу перейти с VIM'а на Emacs


0

0

Подкиньте годных советов по миграции с VIM'а на Emacs ну или ссылок на такие советы. Навроде таблиц соответствия вимовских биндингов эмаксовым, ну и как там было у Дугласа Адамса вообще.

З.Ы. Гугль по запросу «vim to emacs migration» выдает только унылые «истории успеха»®©.

★★★★★

./emacs


C-h t

anonymous
()

Просто начинай им пользоваться (можно прочитать туториал) и гугли по мере надобности — все эти писульки без практики не нужны.

RealSiberianMan
()

Главное - захотеть. Практикуйся.

bk_ ★★
()

я пробовал 2 раза, причем не просто так, а пользовался целенаправленно им на работе.

и нифига...

вероятно емакс таки ненужен.

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

сопливые нытики-неоссилляторы ненужны емаксу.

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

Я только с третьей попытки перешёл :)


По теме: не нужно искать в емаксе соответствующие виму биндинги. Многих из них нет, хотя несложно сделать. В емаксе просто другой подход к редактированию, пройди С-h t и привыкай.

xetf ★★
()

> Хочу перейти с VIM'а на Emacs

Ну и зря!

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

зато не нужно заботиться о мелочах, можно сосредоточиться на процессе работы

p.s. ex-ярый вимер, на емакс перешёл меньше года назад, ни капли не жалею

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

не советую viper-mode, он конечно, вполне юзабелен, но лучше осилить родные методы работы, а потом допилить под себя

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

ну не знаю, возмём пример.

в своих проектах я например придерживаюсь KNF. т.е.

int
main()
{
<--TAB-->int<--TAB-->a;
<--TAB-->struct<--TAB-->aaa *bbb;

<--TAB-->for (a = 0; a < 10; a++) {
<--TAB--><--TAB-->switch (a) {
<--TAB--><--TAB-->case 0:
<--TAB--><--TAB--><--TAB-->break;
<--TAB--><--TAB-->}
<--TAB-->}

<--TAB-->return 0;
}

если даже мне удалось заставить emacs делать большую часть из того, что мне надо:

(c-add-style "openbsd"
             '("bsd"
               (indent-tabs-mode . t)
               (defun-block-intro . 8)
               (statement-block-intro . 8)
               (statement-case-intro . 8)
               (substatement-open . 4)
               (substatement . 8)
               (arglist-cont-nonempty . 4)
               (inclass . 8)
               (knr-argdecl-intro . 8)))
(setq c-default-style "openbsd")

то вот одну вещь я ни как не могу заставить его делать: если ты заметил, то при декларации переменных после первого слова следует TAB.

вот как заставить emacs его вставлять? про C-q TAB знаю, но этот костыль мне не подходит.

и это раздражает. emacs тут мне не помогает — он мне мешает.

мне гораздо удобней тыцнуть TAB в vi при входе в новый уровень вложения и BS при выходе из него, чем колдовать пол-дня над emacs, что бы заставить его делать так как хочу я, а не он.

в этом плане mg кстати гораздо лучше себя ведёт.

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

PS: про mg наврал — у него те же проблемы в c-mode

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

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

(setq indent-tabs-mode t)
(setq-default indent-tabs-mode t)
(global-set-key (kbd "TAB") 'self-insert-command)

beastie ★★★★★
()

/me делал по методу воробья

apt-get remove vim

А через пару-тройку дней обратно install. Вроде сработало.

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

вот как заставить emacs его вставлять? про C-q TAB знаю, но этот костыль мне не подходит.

А про C-h v c-tab-always-indent знаете?

c-tab-always-indent is a variable defined in `cc-vars.el'.
Its value is t


Documentation:
*Controls the operation of the TAB key.
If t, hitting TAB always just indents the current line.  If nil, hitting
TAB indents the current line if point is at the left margin or in the
line's indentation, otherwise it inserts a `real' tab character (see
note).  If some other value (not nil or t), then tab is inserted only
within literals (comments and strings), but the line is always
reindented.

Как Вы заметили Выше, этот стиль выравнивания придумали не Вы и те кто его придерживаются уже всё в интернете описали, как его лучше настроить в emacs'е, кстати авторы PostrgeSQL в своём проекте вставляют табы после типа и перед именем переменных с помощью специальной самописной утилиты: pgindent :)

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

M-i (tab-to-tab-stop) разве не то?

Вообще в емаксе возможно все, вопрос только как сколько ты времени готов уделить курения манов или просто же describe-*.

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

большое спасибо за подсказку.

теперь осталось решить проблему с забиванием табов. т.е. что бы TAB забивался одним BS, а не восмью

тот стиль выравнивания придумали не Вы и те кто его придерживаются уже всё в интернете описали, как его лучше настроить в emacs'е

вы будете смеяться, но мне ха многие годы гугления ничего толкового не попадалось.

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

ха-ха, Emacs Lisp ломает подсветку на гитхабе :) в районе ?\"

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

> мне гораздо удобней тыцнуть TAB в vi при входе в новый уровень вложения и BS при выходе из него, чем колдовать пол-дня над emacs, что бы заставить его делать так как хочу я, а не он.

Это точно, самая раздражающая черта емакса - слишком умный автоиндент. Всё время приходится что-то подкручивать, так как емакс не подозревает, какие странные требования к оформлению бывают в иных проектах. А ещё эти безумные шорткаты для распальцованных пацанов... С другой стороны, вим слишком примитивен, чтобы полноценно заменить emacs в роли IDE. Так что приходится жрать кактус.

anonymous
()

Распечатай pdf о двух страницах(emacs cheat sheet) и положи рядом с собой. Правда, к терминологии придется привыкнуть(в виме есть понятие yank?).

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

в виме есть понятие yank?

Есть. Копирование.

GotF ★★★★★
()

Привет всем.

На Имаксе я сидел около года и могу сказать, что его биндинги очень неудобны (кроме m-x)

Сейчас пользуюсь VIM и очень рад почти все биндам.

Если рассматривать самое основное - перемещение, то это в виме сделано удобно -> HJKL, но не очень понятно, почему нельзя было сделать JKLI или KL;O ...

Советую не «привыкать» к ужасным распальцовкам C-N/C-P а скачать и установить себе Ergo-Emacs. Там навигация сделана клавишами C-J/K/L/I (или какими-то другими, но суть ясна - перенос стрелок на основную часть клавиатуры)

Помимо этого авторы заменили почти все основные биндинги на более удобные.

Так что нафиг, единственное, что мне нравилось в емаксе помимо мета-иксаа это C-A/C-E/C-K ... Да и эти клавиши вроде бы являются posix стандартном.

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

знающие люди, кстати, советуют не ходить «стрелочками» (кстати, перенос ctrl на caps решает многие прблемы с распальцовками и не только в емаксе), а использовать интерактивный поиск и прочие плюшки.

ну и самое главное, vim - это всего лишь редактор

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

> На Имаксе я сидел около года и могу сказать, что его биндинги очень неудобны (кроме m-x)

Что мешает заменить биндинги на более удобные? Кстати, для любителей модальности есть viper и vimpulse. Емакс тем и хорош, что даёт механизмы, а не политику. Лепи из него что хочешь.

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

я наверное непонятно написал. (или вы не читали до конца) я призываю юзать ergo-emacs или менять биндинги на свои, и ходить по документу через C-H/J/K/U попробуйте на клавиатуре посмотреть что это за кнопки. Это теже стрелочки, только находятся они в основной части клавы.

Стрелочки - аццтой, говорю как ленивый владелец ноутбука, которому лень перемещать руку к стрелкам.

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

дочитайте сообщение до конца. а так да - если и перейду на имакс то с вимпером.

ciss
()

Ну и как там переход продвигается?

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

>Стрелочки - аццтой, говорю как ленивый владелец ноутбука, которому лень перемещать руку к стрелкам.

я наверное непонятно написал. (или вы не увидели кавычки) Я называю стрелочками шорткаты для перехода на единичный символ

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

p.s. я несколько лет юзал vi/vim, так что знаю, что такое hjkl. Когда перешёл на емакс, думал, что буду использовать viper. Но потом понял, что это не нужно, тут просто другая философия редактирования по дефолту, и она мне по душе.

Опять же, кое какие бинды пришлось менять (C-w, C-h, etc), но большая часть дефолт.

Обязательность префиксов при редактировании в емаксе компенсируется отсутствием необходимости переключать режимы редактирования.

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

> Обязательность префиксов при редактировании в емаксе компенсируется отсутствием необходимости переключать режимы редактирования.

Главная интрига, что же в имаксе компенсирует отсутствие режимов?

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

> почему нельзя было сделать JKLI или KL;O

У тебя какая-то проблема с пальцами? Обрублены некоторые фаланги?

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

> я пробовал 2 раза, причем не просто так, а пользовался целенаправленно им на работе.

и нифига...


вероятно емакс таки ненужен.


Я пробовал шесть раз. На седьмой поставил viper-mode, vimpulse и наступило счастье.

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

ответь на вопрос, почему юзать C-N/C-P удобнее чем C-I/C-K? проблема с тем, что когда подсовывают говно - я не хочу этим пользоваться.

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

>что же в имаксе компенсирует отсутствие режимов

Они там присутствуют. Только склонны сами по себе в insert сваливаться после каждой команды. Почти как в evim-е, только кнопки другие.

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

> ответь на вопрос, почему юзать C-N/C-P удобнее чем C-I/C-K?

Сначала ты ответь на вопрос, зачем ты убил лорупалмер?

проблема с тем, что когда подсовывают говно


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

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

> Только склонны сами по себе в insert сваливаться после каждой команды.

Вечно в этом имаксе что-то отваливается...

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

> вероятно емакс таки ненужен.

Именно!

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