Я хочу, чтобы привязка emacs (в режиме зла) брала выделение и перемещала его по одному пробелу за раз вправо или влево. Например, выделите пять строк, нажмите [некоторая клавиша], и все пять строк переместятся на одну позицию вправо, а затем нажмите [shift некоторая клавиша], и все строки переместятся на одну позицию влево.
привязка emacs (злая) для перемещения выделенных строк, вставки пробелов
Ответы (1)
Это может быть лучший подход, чем тот, который я изначально опубликовал.
(defun jg-indent (start end count)
(interactive "r\np")
(save-excursion
(let ((start (if (use-region-p)
start
(beginning-of-line)
(point)))
(end (if (use-region-p)
end
(end-of-line)
(point))))
(indent-rigidly start end count))))
(defun jg-unindent (start end)
(interactive "r")
(jg-indent start end -1))
(global-set-key "\C-c=" 'jg-indent)
(global-set-key "\C-c+" 'jg-unindent)
person
Eric Johnson
schedule
27.03.2012
Я только что наткнулся на отступ-жестко, что может быть лучшим выбором. Мой привязан к C-x C-i.
- person Eric Johnson; 28.03.2012
Эрик, это близко, но я теряю свой регион после первого попадания. Я хочу иметь возможность нажимать это несколько раз, например привязывать ctrl-= для перехода вправо и ctrl-+ (ctrl shift =) для перехода влево для региона, а если региона нет, следует использовать текущую строку.
- person justingordon; 29.03.2012
Я опубликовал лучший подход выше. Мне не удалось привязать его к ключам, которые вы хотели. Есть что-то неприятное в этих двух ключах. Извиняюсь!
- person Eric Johnson; 29.03.2012