LINUX.ORG.RU
ФорумTalks

Emacs для пользователей vi и всех остальных желающих


0

0

Давайте обсудим тему Vi vs. Emacs в прикладном и позитивном ключе.

http://www.elmindreda.org/emacs.html

Удаление одной строки:
в vi: dd (в командном режиме)
в emacs: C-a C-k C-k (аки ужас, летящий на крыльях Столлмана)
Удаление n строк:
в vi: dnd или ndd (---||---)
в emacs: ?

Кто что думает по этому поводу, у кого какие предпочтения для удаления строки? Просьба выкладывать свои конфиги хотя бы частично.

★★★★★

dd — это _НЕ_ удаление строки, а «выкусывание» её в клипборд. Для удаления отчасти подходит cc или S.

Вот мой конфиг http://pastebin.org/pastebin.php?dl=22455

секция langmap там похереная, вот она тут:

set langmap=КГХЛЕОЗЫЭЪИЯЖЩЧБРТПМДЦЬСЮУНЙФШВА;qwertyuiop[]asdfghjkl\;'zxcvbnm\,.,кгх леHзыэъияжщчбртпмдцьсюунйфшва;QWERTYUIOP{}ASDFGHJKL:\"ZXCVBNM<>

annoynymous ★★
()

> в emacs: C-a C-k C-k (аки ужас, летящий на крыльях Столлмана)

Забиндь на хоткей, который считаешь удобней.

> Удаление n строк: > в vi: dnd или ndd (---||---)

Предлагаешь их сначала посчитать?

// :(

anonymous
()

Фигня все это, в моей энтерпрайз Вижуал Студии любые действия легко исполняются несколькими движениями мыши. Зачем запоминать непонятные сочетания клавиш?

anonymous
()

У меня в emacs-е так - зажимаешь кнопачку шифт, стрелочками вверх-вниз помечаешь нужные строчки, потом нажимаешь кнопачку del. Строчки удаляются. Ничего считать не нужно, в командный режим переходить не нужно, запоминать особых клавиатурных комбинаций, а потом их вспоминать тоже не нужно, запоминать сигнатуру команд не нужно. Все так как в большинстве современных текстовых редакторов. Если курсор стоит в середине строки котую надо удалить, то еще надо кнопочку home нажать

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

> зажимаешь кнопачку шифт, стрелочками вверх-вниз помечаешь нужные строчки, потом нажимаешь кнопачку del

На эклипс быдло!

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

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

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

>> Предлагаешь их сначала посчитать?

>предлагаю воспользоваться визуальным режимом ;)

+1

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

>На эклипс быдло!

Вот интересно, осилит ли эклипс работу со всем ядром Линукс?

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

> зажимаешь кнопачку шифт, стрелочками вверх-вниз помечаешь нужные строчки, потом нажимаешь кнопачку del

Ути, вендузятко!

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

Один вопрос: какая польза от запоминания команд редактора? Может хватит хвастаться своими абсолютно

бесполезными знаниями и заняться делом? :)

Agent666
()

Кстати возникла мысль: с точки зрения начинающего автомобилиста emacs круче, ибо способствует навыкам использования педалей, в то время как vim учит бибикать и все портить

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

> Один вопрос: какая польза от запоминания команд редактора?

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

> Может хватит хвастаться своими абсолютно бесполезными знаниями и заняться делом? :)

Начни с себя.

// :(

anonymous
()

хм, хватает gvim заглаза )

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

Угу. Педали для Ctrl и Alt. Например, С-x-s - первая передача, С-x-c - нейтральная. Только вот газа нет :)

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

> А зачем -- затем чтоб еффективно работать.

Всегда ли? - C помощью мышки и кнопки del, текстовый блок удаляется быстрее, чем
c помощью команд или комбинаций клавиш. Но в некоторых случаях команды, да,
использовать удобнее.

Agent666
()

> M-x goto-line Enter n

M-g g <number>

> Set mark x

Просто метку можно поставить по C-SPC, а метку `x' по C-x r C-SPC x

> Go to mark x

К анонимной метке C-x C-x, а к метке `x' по C-x r j x

> Go to first displayed line
> Go to last displayed line

Хз. Может гуру знают?

> C-k C-k

C-u C-k или M-1 C-k, а для 20 строк M-20 C-k

> Open line above

C-o, только надо это делать вначале строки

> Join lines

M-^, только в emacs'е поднимается текущая строчка наверх, а не предыдущая строчка как в vi

> Undo last edit

C-/ или C-_

> Yank n lines

Бред, это делается не через регионы, а через аргумент либо по C-u <number> либо по M-<number>, т.е.
C-u n C-k или M-n C-k плюс С-_ (undo)

> Paste after cursor

C-u C-y

> Search forwards

Нифига! vi ищет по regexp'ам, а emacs по строкам. Чтобы искать по regexp'ам надо C-M-s и C-M-r

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

> M-^, только в emacs'е поднимается текущая строчка наверх, а не предыдущая строчка как в vi

Большинство таких отличий обходится заданием отрицательного аргумента, как то C-u - M-^ или M-- M-^

anonymous
()

> If your system lacks a functional Meta key, you can type Escape before the specified key.

Не только! Можно еще использовать C-[

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

10-ток рутиных повторяющихся действий мышкой довольно муторно выполнить, а в emacs'е выполняется банальным заданием keyboard macro и испольнением его нужного кол-во раз. Причем это кол-во можно задать аргументом.

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

в emacs'е это делается заданием transient mark (C-SPC C-SPC) и нажатием M-;
после сего весь регион становится закомментированным

ты об этом?

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

>>Удаление n строк

>>esc n c-k

>+1

Не осилившие C-[ n C-k идут в утиль. Пока до escape дотянешься можно набрать еще десяток комбинаций.

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

> Не осилившие C-[ n C-k идут в утиль. Пока до escape дотянешься можно набрать еще десяток комбинаций.

Эта хрень очень легко подтверждается банальным экранированием esc по C-q в emacs и C-v в vi:
esc == ^[ == C-[ == M-
правда meta не дает символа сама по себе в отличие от остальных

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

>Всегда ли? - C помощью мышки и кнопки del, текстовый блок удаляется быстрее, чем
c помощью команд или комбинаций клавиш. Но в некоторых случаях команды, да,
использовать удобнее.

Не факт. У многих ноутов неудобный тачпэд, и вообще любой тачпэд неудобнее обычной мышки (только не надо говорить обратное). Так вот, когда сидишь и набираешь код (особенно на ноуте), пальцы постепенно начинают "вростать" в клавиатуру. Например, у вимеров время на нажатие <Esc> и ':' настоолько незначительно, а само действие выполняется настолько легко и непринуждённо, что по сравнению с тачпэдом - это примерно как стрелять в тире после чашечки кофе и n литров водки соответственно. Отвлекаться на мышку просто нет времени. Тем более, если человек нервничает, пульс учащается, давление повышается, работоспособность понижается...

P.S. У емаксеров, вероятно, мизинец концептуально смотрит на Ctrl.

seiken ★★★★★
() автор топика

Напмоните - vi это то, что бибикает и все портит? Фтопку, пусть хоть все на жестах мыши сделают.

anonymous
()

> Просьба выкладывать свои конфиги хотя бы частично.

;;Для начала должно хватить. Только emacs-w3m поставь.
(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(browse-url-browser-function (quote w3m-browse-url))
 '(browse-url-generic-program "opera")
 '(browse-url-text-browser "w3m")
 '(diff-switches "-u")
 '(inhibit-startup-screen t)
 '(iswitchb-mode t)
 '(menu-bar-mode nil)
 '(newsticker-html-renderer (quote w3m-region))
 '(scroll-bar-mode nil)
 '(smiley-regexp-alist nil)
 '(tool-bar-mode nil)
 '(tooltip-mode nil)
 '(transient-mark-mode nil)
 '(w3m-key-binding (quote info)))
(custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 )

;; хелп юзаем по F1, а C-h должно
;; быть аналогично консольной
;; т.е. как backspace
(keyboard-translate ?\C-h ?\C-?)
(global-set-key "\C-\M-h" 'backward-kill-word)

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

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

но 5dd - это все равно быстрее, чем до мышки тянуться (или вы прогаете одной рукой, а вторую все время держите на мышке?

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

>> А зачем -- затем чтоб еффективно работать.

>Всегда ли? - C помощью мышки и кнопки del, текстовый блок удаляется быстрее, чем >c помощью команд или комбинаций клавиш. Но в некоторых случаях команды, да, >использовать удобнее.

дывысь, в виме тоже можно выделить мышкой и нажать Del. Более того, там можно выделять текст мышкой ГОРАЗДО удобнее, чем это сделано в других редакторах. Так что аргумент мимо.

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

Надо внешнюю мышу юзать. Тачпад это только от бедности и по необходимости. Да и потом на многих субноутбуках клавиатура такая, что особо с емаксовскими "распальзовками" не поработаешь. Да и нумпада нету, а на него очень удобно вешать всякие полезные кейбиндинги.

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

олололо нищеброд не трогал тачпады на маках

anonymous
()

нашел интересные заметки про "эргономичность" Emacs'а. Почему там такие кривые шорткаты: http://xahlee.org/emacs/emacs_kb_shortcuts_pain.html и неоптимальные http://xahlee.org/emacs/command-frequency.html

Взамен предлагается эргономичная раскладка http://xahlee.org/emacs/ergonomic_emacs_keybinding.html и клавиатуры http://xahlee.org/emacs/emacs_pinky.html

правда, идея автора натянуть на Emacs CUA мне не нравиццо :(

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

>пальцы постепенно начинают "вростать" в клавиатуру. Например, у вимеров время на нажатие <Esc> и ':' настоолько незначительно, а само действие выполняется настолько легко и непринуждённо

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

Sun-ch
()
Ответ на: комментарий от Burbaka

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

предлагаешь купить руль и в емаксе пользоваться педалями, а в виме -- рулить и бибикать ? :))

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

>но 5dd - это все равно быстрее, чем до мышки тянуться (или вы прогаете одной рукой, а вторую все время держите на мышке?

Не флейма ради, мне интересно, вы на время прогаете? Работодатель с секундомером за спиной стоит?

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

к ней телепатического интерфейса нет, так что -- свободен.

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

было какое-то исследование по эргономике, стояли с секундомером за спиной у мышевозюкеров и аникейшиков. Оказалось, что хотя мышой ткнуть быстрее, чисто писихологически клавиатура воспринимается как более быстрое, да и опять же телепатический интерфейс :) труЪ мышиный интерфейс должен быть в чём-то вроде sam/acme с интеркликами мышкой, остальное -- жалкая подделка.

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

> предлагаешь купить руль и в емаксе пользоваться педалями, а в виме -- рулить и бибикать ? :))

Ну дык - настоящий юниксвей получится. Педали орабатываются в одной программе, бибикаешь в другой, а рулиш вообще в чистой консоле :)

Burbaka ★★
()

Всё тему читать лень, но выбирать среду по клавиатурным комбинациям есть мудачество. Для Ctrl есть ребро ладони.

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

> Для Ctrl есть ребро ладони.

Убогие только используют для Ctrl ребро ладони. У нормальных людей Ctrl вместо Caps_Lock.

// :(

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

Ctrl нажимаю телепатически. Непредставляю как можно по другому ?

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