2013-04-29 6 views
2

Noob to emacs. Я хотел бы создать ярлык в emacs, чтобы вставить 4 пробела из текущей позиции курсора и удалить 4 пробела из текущей позиции курсора. Может быть, сопоставить его с C> и C <
Может ли кто-нибудь помочь мне с этим?emacs shortcut to insert 4 space and remove 4 space

Заранее спасибо

zer0 0ne

+0

Является ли это для кода отступа? Любой конкретный язык? Пользователи Emacs обычно используют автоматическое отступы и настраивают его так, чтобы, возможно, вам не нужно это делать. – phils

+0

@phils Да, это для отступов кода. Я установил c-mode с linux-стилем. Вкладка работает только в начале строки и не работает, когда я пытаюсь выровнять присвоения на границах вкладок :( PS Я попытался выровнять выравнивающие кодовые блоки, но выравнивание уродливо для меня. –

ответ

1

Вы можете легко отобразить ключ или ключи, чтобы вставить или удалить пробелы, если вы действительно хотите, но это не Emacs путь. Настройте c-mode на отступ так, как вы хотите, и тогда вам больше не придется вручную настраивать отступы (и когда вы смотрите на чей-то код и хотите его повторить так, как вам нравится, вам просто нужно отметить весь буфер и тип M-x indent-region - ох, сила!).

Emacs manual on customizing C mode

Emacs Wiki

+0

Не влияет на 'c- mode ", но имейте в виду, что [некоторые] (http://docs.python.org/release/2.5.1/ref/indentation.html) языки [являются] (http://en.wikibooks.org/ wiki/Haskell/Indentation), чувствительный к пробелу, поэтому 'indent-region' на всем буфере не всегда лучшая идея. – Inaimathi

+0

@ Inaimathi: Хорошая точка. Я ничего не знаю о Haskell, но в python-mode' indent -region' не собирается делать ничего хорошего и может нанести вред, так как для любой данной строки может быть несколько возможных синтаксически и семантически правильных точек отступа. – dodgethesteamroller

2

Вы можете повторить любую клавишу столько раз, сколько вы хотите, добавляя числовой префикс:

ESC <number> <key> 

так что вы можете сделать:

ESC 4 SPACE 

или ESC 4 BA CKSPACE

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

http://emacswiki.org/emacs/KeyboardMacros

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

-dmg


+0

'Cu ' также работает, если вы хотите держать свои руки ближе к домашнему ряду , – Inaimathi

+0

Или 'C- ' или 'M- ', но у меня сложилось впечатление, что Zero One будет делать это слишком часто, чтобы каждый раз давать аргумент. – phils