/魔改快捷键/ 交换$和4

最近写perl非常多, $符号输入特别多, 手太累所以交换了4和$. 代码如下:


(defalias 'perl-mode 'cperl-mode)

(setq cperl-indent-level 4)

;; overwrite cperl-electric-keyword to disable bad behavior
(eval-after-load 'cperl-mode
  '(progn
     (defun cperl-electric-keyword ()
       (message "cperl-electric-keyword"))
     (defun cperl-electric-else ()
       (message "cperl-electric-else"))
     (defun insert-char-four ()
       (interactive)
       (insert "4"))
     (defun insert-char-dollar ()
       (interactive)
       (insert "$"))
     (define-key cperl-mode-map (kbd "4") 'insert-char-dollar)
     (define-key cperl-mode-map (kbd "$") 'insert-char-four)
     (define-key cperl-mode-map "{" 'nil)))

(provide 'init-perl)
4 个赞

可不可以先不用加$ 在编写完之后 选定一个区域 对区域内的某一个单词统一加上$呢?

变量太多,这样做不太方便。

我想交换;:

可以仿造上面的方式, 不过得绑定到global-mode-map

我跟你目的不同哦,我不改变输入时候的键位,只是想在evil模式下把;映射成evil-ex,我知道是相同的方法,其实我一开始以为你是因为想用$快速切换至行尾,所以才调换了4$:rofl:

简单替换:

(evil-global-set-key 'motion ";" 'evil-ex)
(evil-global-set-key 'normal ":" 'evil-repeat-find-char)

能把你的方法share出来么, 这样有更多的人会由于这种code snippet得到启发.

特地给最近写PERL非常多这句话点赞!!!!

也可试试 key-translation-map