जैसे कि कोई व्यक्ति जो शाप से आया था, उसने विम की कोशिश की, और महसूस किया कि बड़ी संख्या में चीजें हासिल करने के लिए हैं, मैंने बहुत से प्रयोग किए जब मैंने पहली बार बुराई का उपयोग करना शुरू किया। हालांकि निम्नलिखित विवादास्पद हैं, मैं इमैक कीज़ को टर्मिनल, फ़ायरफ़ॉक्स, कोको, आदि में अधिक सार्वभौमिक रूप से उपयोग करना चाहता था, लेकिन विम संपादन क्षमताओं को खोना नहीं चाहता था। मैंने अपने .emacs में निम्नलिखित कुंजियों को फिर से बनाने का निर्णय लिया:
(define-key evil-normal-state-map "\C-e" 'evil-end-of-line)
(define-key evil-insert-state-map "\C-e" 'end-of-line)
(define-key evil-visual-state-map "\C-e" 'evil-end-of-line)
(define-key evil-motion-state-map "\C-e" 'evil-end-of-line)
(define-key evil-normal-state-map "\C-f" 'evil-forward-char)
(define-key evil-insert-state-map "\C-f" 'evil-forward-char)
(define-key evil-insert-state-map "\C-f" 'evil-forward-char)
(define-key evil-normal-state-map "\C-b" 'evil-backward-char)
(define-key evil-insert-state-map "\C-b" 'evil-backward-char)
(define-key evil-visual-state-map "\C-b" 'evil-backward-char)
(define-key evil-normal-state-map "\C-d" 'evil-delete-char)
(define-key evil-insert-state-map "\C-d" 'evil-delete-char)
(define-key evil-visual-state-map "\C-d" 'evil-delete-char)
(define-key evil-normal-state-map "\C-n" 'evil-next-line)
(define-key evil-insert-state-map "\C-n" 'evil-next-line)
(define-key evil-visual-state-map "\C-n" 'evil-next-line)
(define-key evil-normal-state-map "\C-p" 'evil-previous-line)
(define-key evil-insert-state-map "\C-p" 'evil-previous-line)
(define-key evil-visual-state-map "\C-p" 'evil-previous-line)
(define-key evil-normal-state-map "\C-w" 'evil-delete)
(define-key evil-insert-state-map "\C-w" 'evil-delete)
(define-key evil-visual-state-map "\C-w" 'evil-delete)
(define-key evil-normal-state-map "\C-y" 'yank)
(define-key evil-insert-state-map "\C-y" 'yank)
(define-key evil-visual-state-map "\C-y" 'yank)
(define-key evil-normal-state-map "\C-k" 'kill-line)
(define-key evil-insert-state-map "\C-k" 'kill-line)
(define-key evil-visual-state-map "\C-k" 'kill-line)
(define-key evil-normal-state-map "Q" 'call-last-kbd-macro)
(define-key evil-visual-state-map "Q" 'call-last-kbd-macro)
(define-key evil-normal-state-map (kbd "TAB") 'evil-undefine)
(defun evil-undefine ()
(interactive)
(let (evil-mode-map-alist)
(call-interactively (key-binding (this-command-keys)))))
दुर्भाग्य से, विम के साथ ये ओवरलैप "एक स्क्रीन को ऊपर या नीचे ले जाते हैं" ऑपरेशन। हालाँकि, मैं इसके बजाय निम्नलिखित का उपयोग करके सहज हो गया हूं:
(define-key evil-normal-state-map (kbd "DEL") (lambda ()
(interactive)
(previous-line 10)
(evil-scroll-line-up 10)
))
(define-key evil-normal-state-map (kbd "=") (lambda ()
(interactive)
(next-line 10)
(evil-scroll-line-down 10)
))
इसके अलावा, यदि आप विम से आ रहे हैं और "jk" (या किसी अन्य 2 स्ट्रोक संयोजन) का उपयोग करके सामान्य मोड में सम्मिलित होने से एक त्वरित मार्ग चाहते हैं, तो सबसे अच्छा तरीका http://www.emacswiki.org/ से पाठ की प्रतिलिपि बनाना है emacs / download / key-chord.el और इसे अपने ~ / .emacs.d / key-chord.el में पेस्ट करें। फिर निम्नलिखित को अपने .emacs में जोड़ें:
;load a file named key-chord.el from some directory in the load-path (e.g. "~/.emacs.d")
(require 'key-chord)
(key-chord-mode 1)
(key-chord-define-global "jk" 'evil-normal-state)
इसके अलावा, अगर आप विम से आ रहे हैं और आपको लगता है कि इमेक में कॉपी-टू-क्लिपबोर्ड अच्छा नहीं है, तो आप शायद सही हैं। हालाँकि, आपको sudo apt-get install xsel चलाने के बाद निम्नलिखित उपयोगी मिल सकता है:
(defun copy-to-clipboard ()
(interactive)
(if (display-graphic-p)
(progn
(message "Yanked region to x-clipboard!")
(call-interactively 'clipboard-kill-ring-save)
)
(if (region-active-p)
(progn
(shell-command-on-region (region-beginning) (region-end) "xsel -i -b")
(message "Yanked region to clipboard!")
(deactivate-mark))
(message "No region active; can't yank to clipboard!")))
)
(evil-define-command paste-from-clipboard()
(if (display-graphic-p)
(progn
(clipboard-yank)
(message "graphics active")
)
(insert (shell-command-to-string "xsel -o -b"))
)
)
(global-set-key [f8] 'copy-to-clipboard)
(global-set-key [f9] 'paste-from-clipboard)
जाहिर है, आपको खुद तय करना होगा कि इनमें से कोई भी विवादास्पद बदलाव इसके लायक है या नहीं, लेकिन शायद ये बुनियादी बदलाव आपको प्रेरित करेंगे।
कुछ अन्य वास्तव में शांत फ़ंक्शन कार्यान्वयन के लिए, जैसे कि हटाएं और पेस्ट करें, क्लिपबोर्ड पर कॉपी किए बिना हटाएं, कुशल 4x / 16x आंदोलन, पेस्ट रजिस्टर विनिर्देश के लिए गणना का उपयोग, टैब सेटिंग्स जो वास्तव में सी / सी ++ के लिए काम करती हैं, और अधिक, आप देख सकते हैं पूर्ण .emacs, init.el, my-keymaps.el, और my-functions.el के छंदों को मेरे git https://github.com/Russell91/emacs पर