?

Log in

No account? Create an account

емакс, часть 1: первый взгляд - Excelsior — LiveJournal

Aug. 8th, 2011

08:29 pm - емакс, часть 1: первый взгляд

Previous Entry Share Next Entry

емакс, часть 1: первый взгляд
емакс, часть 2: восторг
емакс, часть 3: windows
емакс, часть 4: ретроспектива

Наконец, переборол свой страх перед емаксом и заставил себя слезть с gedit. За сегодня узнал много чего нового - ecb, dired, tabbar, ну и так, по мелочи настроил .emacs.d. Попутно сгенерилась куча вопросов, вот несколько из них.

1. В чем тайный смысл длинных хоткеев для частых действий? Вот, например, C-x C-_ для redo: требует нажатия пяти клавиш для выполнения весьма распространенной процедуры. Это ведь банально неудобно! Наверное, я что-то упускаю, но что? upd. Просто замаппил redo на C-y при помощи UndoTree. Надеюсь, тайный смысл многокнопочных шорткатов пойму позже.

2. С созданием хоткеев я в целом разобрался, но остался нерешенный момент. Как забиндить C-1? Когда я в init.el пишу (global-set-key (kbd "C-1") 'blah-blah), то хоткей тупо не применяется. Если в этой же строчке заменить С-1, например, на C-=, то все ок. upd. Выяснилось, что C-цифры замаплены на некий digit-argument, но я без понятия что это, поэтому просто заюзал другую комбинацию клавиш.

3. Что по концовке будет удобнее: CUA или стандартный подход емакса к копипасту? upd. Врубил CUA, ибо решил вначале добиться минимально необходимого/привычного набора фич, а потом уже играться с емаксом по ходу работы.

4. Как я понимаю, dired - выбор редакции для всех операций, которые касаются нескольких файлов одновременно? Например, поиск некоторого текста во всех файлах папки или замена чего-либо рекурсивно для всех файлов проекта. Или же есть какой-то более удобный тул для этой цели, про который, например, в силу юного возраста еще не написали в бложеках?

5. Как можно удобно сделать инкрементальный поиск по всем файлам проекта? Я нагуглил вариант с запуском диреда с флажком -R и инкрементальным поиском по окошку диреда. Есть ли альтернативные опции с автокомплитом, например, в минибуфере? Как я понял, и ido, и icicles поддерживают только поиск файла в текущей папке. Какие есть еще варианты? (задал вопрос на stackoverflow)

6. Под виндой я привык, что tortoise* регистрирует кастомные оверлеи на иконках файлов, лежащих под сорс-контролем. Файл не менялся после последнего коммита - зелененький, менялся - красненький, ну и в таком духе. Особенная прелесть такого подхода заключается в том, что иконки рекурсивно применяются к папкам, т.о. можно быстро увидеть что закоммитал, а что забыл. Есть ли что-то похожее в емаксе? Я видел, что ECB рисует иконки файлов с учетом их статуса в VCS. Но умеет ли он отображать статус папок? upd. Забил - вообще отключил иконки ECB. Во-первых, они часто глючат, а, во-вторых, магита хватает за глаза - одной кнопкой можно посмотреть статус репозитория, что, в общем-то, и нужно было от иконок.

7. Про какие мастхэв модули я должен знать? Я нашел интересный пост на SO: The single most useful emacs feature - но там больше про мелочи.

Comments:

[User Picture]
From:alexott
Date:August 11th, 2011 06:18 pm (UTC)

oopps

(Link)
я добавил твой журнал по метке емакс в английскую планету, поскольку ты раньше писал по английски - а можно сделать разные метки - для русской и английской планет?
(Reply) (Thread)
[User Picture]
From:xeno_by
Date:August 11th, 2011 06:37 pm (UTC)

Re: oopps

(Link)
emacs-ru и emacs-en пойдет?
(Reply) (Parent) (Thread)
[User Picture]
From:alexott
Date:August 11th, 2011 06:41 pm (UTC)

Re: oopps

(Link)
ага, спасибо - сейчас отправлю pull request maintainer'у с новыми метками
(Reply) (Parent) (Thread)
From:smirnfil
Date:August 11th, 2011 07:47 pm (UTC)
(Link)
C-/ = undo
org-mode очень клевый модуль для самых разных целей.
(Reply) (Thread)
[User Picture]
From:kw_as
Date:August 12th, 2011 05:05 am (UTC)
(Link)
3. Я бы таки посоветовал привыкать к стандартным емаксовым хоткеям, ибо очень многие моды байндят Ctrl-X и Ctrl-C для своих операций. И ещё совет - отвыкайте (если привыкли) от стрелок и Ins-Del-Home-End-PgUp-PgDn в пользу емаксовых комбинаций. Помимо того, что последние не дают разбегаться правой руке на всю клавиатуру, они же ещё и в большинстве юниксовых шеллов работают по умолчанию.
7. org-mode по-любому.
(Reply) (Thread)
[User Picture]
From:alexott
Date:August 12th, 2011 07:39 am (UTC)
(Link)
C-a/C-e - стандартные биндинги в Mac OS X ;-)
(Reply) (Parent) (Thread)
[User Picture]
From:xeno_by
Date:August 12th, 2011 07:41 am (UTC)
(Link)
Ооооо!! Какое счастье, что вы это рассказали! Так бы до конца жизни сидел и тыркал стрелочки, ибо home/end не работают как надо =)
(Reply) (Parent) (Thread)
[User Picture]
From:alexott
Date:August 12th, 2011 07:43 am (UTC)
(Link)
то, какие моды must have - сильно зависит от того, для чего емакс используется - для программирования, писания статей, расчетов и т.д.

у меня это включает distel + erlang-mode для erlang, cedet - C/C++ (они кстати там яву недавно вроде достаточно хорошо прикрутили), gtags - тоже C/C++, haskell-mode, slime - для лиспов, magit - git, dvcs - для остальных distributed VCS, ну и т.д. Можно просто покапаться у меня в конфиге. Почти все ставится через el-get...
(Reply) (Thread)
[User Picture]
From:xeno_by
Date:August 12th, 2011 07:34 pm (UTC)
(Link)
Попробовал магит. Просто сказочная вещь - установилась и заработала без подпиливаний, разве что pop-up-windows пришлось поставить в nil!

Главное, что magit офигенно ускорил работу с сорс-контролем. После мучений и зависонов интегрированного в студию svn, я по жизни был противником интеграции ide и vcs. Если на винде tortoise* обеспечивал базовые удобства работы с vcs, то, когда я перешел на линукс, все стало очень уныло - в консоли отслеживать статус репозиториев было крайне не наглядно. Впрочем, magit изменил мой взгляд на сабж: вызов дэшборда одной кнопкой, хоткеи для всех действий, возможность быстро посмотреть детали - класс!

Единственное, что неочевидно - как переименовывать файлы и особенно папки. Если с первым я еще кое-как справился при помощи vc-rename-file, то второе (переименование папок) как-то неочевидно, ибо vc-rename-file возвращает трэш вроде *** Eval error *** Please update files before moving them.
(Reply) (Parent) (Thread)
[User Picture]
From:alexott
Date:August 12th, 2011 07:43 pm (UTC)
(Link)
ну там в текущей версии немного неудобно сделана работа с окнами на выход... Насчет переименования - честно говоря - не помню
P.S. у меня на сайте есть описание того, как работать с основными пакетами для работы с VCS. Для SVN - самый удобный пакет - psvn. ну и там рядом, есть статьи про другие пакеты...
(Reply) (Parent) (Thread)
[User Picture]
From:zahardzhan
Date:August 12th, 2011 10:37 pm (UTC)

Emacs Starter Kit

(Link)
Не парься. Используй Emacs Starter Kit http://zahardzhan.github.com/2010/emacs-starter-kit-the-program.html https://github.com/zahardzhan/emacs-starter-kit
(Reply) (Thread)
From:(Anonymous)
Date:August 14th, 2011 08:59 am (UTC)

mode-line

(Link)
7. Возможно будет полезно заменить стандартрую mode-line на что-нибудь более полезное,
без списка всех включеных модов и этих стрёмных -**-, -%*- и кучи тире в хвосте.
http://www.emacswiki.org/emacs/ModeLine
http://www.emacswiki.org/emacs/ModeLineConfiguration
(Reply) (Thread)
From:(Anonymous)
Date:August 14th, 2011 09:09 am (UTC)

icicles

(Link)
7. Ещё можно поставить Icicles - мощную штуку для автодополнения,
по ней много на емакс вики написано, но с ней можно долго не вникать
так как работает из коробки. Достаточно подключить в .emacs и
автодополнение везде улучшится, а если возникнут вопросы тогда можно и вики покопать.

http://www.emacswiki.org/emacs/Icicles
(Reply) (Thread)
From:Oleg Vershinin
Date:August 16th, 2011 05:59 pm (UTC)
(Link)
4., 5. - наверное лучше grep или find-grep. Опять же TAGS
в dired поиск осуществляется вроде как открытием каждого файла.

6. M-x vc-dir
Хотя и есть psvn, но чаще использую это.
(Reply) (Thread)