我的第一个Emacs函数
Emacs 中的 Ctrl+w 快捷键,默认的功能是剪切选中的文本(marked region);如果没有选中的文本,其结果令人琢磨不透,有时候向前删除一大段内容,有时候向后删除一大段内容(TODO)。
在我的 AndroidStudio 中,Ctrl+w 的配置为 如果有选中的文本,则剪切之;如果没有选中的文本,则删除此行。
作为一个处女座程序员,怎么可以容忍同一组快捷键在不同的 IDE 中行为不一致呢?
所以花了大概半个小时,研究出了这段 elisp 代码:1234567891011;; -------------------------;; Kill region or kill line;; -------------------------(defun kill-region-or-kill-line() "Kill marked region if marked or kill whole line if not marked." (interactive (if (use-region-p) (kill-region (region-beginning) (region-end)) (kill-whole-line))));; Bind shortcuts(global-set-key (kbd "C-w") 'kill-region-or-kill-line)
说起来,使用 Emacs 已经好几年了,却没有深入下去,这算是一个好的开始。