我正在尋找一種在emacs中將文本向右或向左移位01空格的方法。它在vim <<
或>>
中具有類似的功能。它應該在一個區域上工作,或者如果在當前行上沒有選擇區域,並且不將光標從當前位置移開。在emacs中移動一個區域或行
從EmacsWiki的解決方案不如M-x indent-rigidly
很好,因爲它有點記得最後使用的區域,並改變它。最接近的似乎是一個here,但我沒有設法使其工作。我不是一個lisp開發人員,所以很難修改代碼。我會感謝任何幫助。
謝謝!
我正在尋找一種在emacs中將文本向右或向左移位01空格的方法。它在vim <<
或>>
中具有類似的功能。它應該在一個區域上工作,或者如果在當前行上沒有選擇區域,並且不將光標從當前位置移開。在emacs中移動一個區域或行
從EmacsWiki的解決方案不如M-x indent-rigidly
很好,因爲它有點記得最後使用的區域,並改變它。最接近的似乎是一個here,但我沒有設法使其工作。我不是一個lisp開發人員,所以很難修改代碼。我會感謝任何幫助。
謝謝!
也許這是你想要的方式。
(defun shift-text (distance) (if (use-region-p) (let ((mark (mark))) (save-excursion (indent-rigidly (region-beginning) (region-end) distance) (push-mark mark t t) (setq deactivate-mark nil))) (indent-rigidly (line-beginning-position) (line-end-position) distance))) (defun shift-right (count) (interactive "p") (shift-text count)) (defun shift-left (count) (interactive "p") (shift-text (- count)))
要做到這一點,我通常做的一招:
這也可以以某種方式編程(以相同的方式)。
編輯: 我剛剛閱讀了emacs wiki中的文章,除了CUA模式比「常見」的矩形選擇(因爲它是可視的)功能更強大之外,它是相同的解決方案。
您可以使用'(cua-selection-mode t)'將CUA優秀的矩形編輯工具與其他功能分開。假如你沒有將'C-RET'綁定到別的東西,你可以把它放在init文件中,它不會和任何東西衝突。 – phils 2010-07-01 22:14:57
有關移動線條基本用法的簡要說明:'C-RET' +光標移動指定矩形,'RET'旋轉拐角,在矩形前/後輸入插入,'C-RET'退出。有關此次要模式提供的完整詳細信息,請參閱cua-base.el中的「CUA矩形支持」下的說明,或閱讀http://trey-jackson.blogspot.com/2008/10/emacs-tip-26- cua-mode-specifically.html – phils 2010-07-01 22:35:50
我有一個坦白。我使用CUA模式。 – 2017-02-16 08:40:27
您可以選擇區域然後C-u C-x <tab>
將移動4個空格。您可以在C-u後鍵入一個數字,將其他值改爲4。
另一個提示:'C-u'之後的數字可能是負數,在這種情況下,區域將被移到左邊而不是右邊。 – 2016-12-01 14:33:34
非常好!這正是我期待的!非常感謝。你不想把它也放到EmacsWiki嗎? – fikovnik 2010-07-01 21:25:32