2011-05-05 41 views

回答

27

命令C-Oopen-line別人建議是不太一樣的Ø在vi,因爲這將當前行,並讓光標留在當前行。

你得到完全相同的效果六世Ø有兩招:RET,光標移動到當前行的末尾,然後插入一個新的生產線,這讓光標在該行的開始。

您可以將該序列綁定到其自己的密鑰(也許覆蓋現有的定義C-o),但我懷疑是否值得麻煩。

(順便說一句,對稱序列C-一個RET給你六資本Ø的效果,插入線之前當前行。)

+0

我只是偶爾在vi中發現了這個偉大的密鑰,我相信它值得綁定到* C-o *。這是非常需要的,我很好奇,爲什麼我以前沒有這樣做過。 – 2014-07-25 05:01:42

+2

更好的命令是'C-e C-o',因爲如果啓用了自動填充模式,這將避免包裝當前行。 – asmeurer 2014-11-14 22:05:17

2

嘗試C-o,它會在光標所在處插入一個新行,並將光標留在行上。

+1

但它會打破當前行 – thanhpk 2016-04-29 16:23:59

1

C-o將運行open-line這將在光標後插入一個空行。默認情況下,除非您處於只讀緩衝區,否則emacs已處於「插入模式」。

+0

不,這與vim的'o'命令不一樣 – eugenevd 2015-09-20 12:23:27

17

你解決問題了嗎?

我剛剛解決了這個問題。隨意使用這個代碼:) 可以綁定到你的global-set-key喜歡每一個關鍵,也與newline萬一更換newline-and-indent你不喜歡的新行縮進。

;; newline-without-break-of-line 
(defun newline-without-break-of-line() 
    "1. move to end of the line. 
    2. insert newline with index" 

    (interactive) 
    (let ((oldpos (point))) 
    (end-of-line) 
    (newline-and-indent))) 

(global-set-key (kbd "<C-return>") 'newline-without-break-of-line) 
+2

這就是emacs的最佳選擇:你可以通過取消它來實現你想要的一切。沒有限制和限制。你可以使emacs適合你,因爲它是高度可定製的! – Bengalaa 2013-12-22 00:10:05

7

我使用前奏,和S-RET相當於VI的öC-S-RET相當於VI的Ò

1

此配置可以幫助:

(defun newline-without-break-of-line() 
    "1. move to end of the line. 
2. open new line and move to new line" 
    (interactive) 
    (end-of-line) 
    (open-line 1) 
    (right-char)) 
(global-set-key (kbd "<M-return>") 'newline-without-break-of-line) 
1

我用下面的鍵綁定使工作類似Vim的O和O:

<pre> 
;; vi-like line insertion 
(global-set-key (kbd "C-o") (lambda() (interactive)(beginning-of-line)(open-line 1))) 
(global-set-key (kbd "M-o") (lambda() (interactive)(end-of-line)(newline))) 
</pre> 
0

我使用emacs 25,我有這樣的事情:

;; Insert new line below current line 
;; and move cursor to new line 
;; it will also indent newline 
(global-set-key (kbd "<C-return>") (lambda() 
        (interactive) 
        (end-of-line) 
        (newline-and-indent))) 
;; Insert new line above current line 
;; and move cursor to previous line (newly inserted line) 
;; it will also indent newline 
;; TODO: right now I am unable to goto previous line, FIXIT 
(global-set-key (kbd "<C-S-return>") (lambda() 
         (interactive) 
         (beginning-of-line) 
         (newline-and-indent) 
         (previous-line))) 

希望能幫到:)

相關問題