2016-07-31 67 views
1

當在文件中變化寬度的行之間上下移動時,是否可以使Emacs保持光標的水平位置?Emacs - 在更改行時保留水平位置

我將通過示例來解釋我的意思。說我有3行文字:

1: ------a 
2: --b 
3: --c---d 

假設光標位於由一個上述標記的位置。如果我向下移動一行,則光標將位於b。如果我再次下移,它將在c。但我實際上最終想要在d

有沒有一種方法,使Emacs的自動做,這樣我可以從一個b只需按下箭頭兩次去d? Emacs將不得不記住我最近一次水平移動時的水平位置,並且每次垂直移動時嘗試恢復水平位置。

+1

Emacs也正是你在默認情況下要求的。 – phils

回答

1

自定義用戶選項goal-columnnil

(您也可以使用命令set-goal-column隨時設置goal-column到當前列。)

+0

您的意思是,我應該這樣做,在.emacs文件中? *(setq目標欄無)*它似乎沒有任何影響。 – wdep1

+0

是的。 (但更好的方法是使用'M-x自定義選項目標欄')。它應該完全按照您在大多數模式中描述的內容進行。某些模式(如Dired)會使光標垂直移動始終移至特定列。如果它不符合你所描述的,嘗試使用'emacs -Q'啓動Emacs,然後將其設置爲'nil'。如果這是有效的,那麼遞歸地分割你的init文件來找出你正在做什麼來對付這種行爲。 – Drew

+0

我發現使用這個* normal-escape.el *腳本:https://www.emacswiki.org/emacs/CancelingInEmacs導致了這個問題;刪除該腳本後,Emacs的默認行爲實際上就是我想要的。 – wdep1