2010-10-14 38 views
10

什麼是最簡單的方式,使vim中的單詞來回導航具有相同的行爲?在vim中,當按下「w」時,它將光標前移一個單詞,其中單詞由一系列字母,數字和下劃線或其他非空白字符序列組成,其中包含空格(空格,製表符,eol) 。另一方面,在emacs中,它會跳到下一個單詞的結尾,並且該單詞在語法表中按每個模式定義。修改emacs的前向/後向行爲(就像在vi/vim中一樣)

例如:具有在該行的開頭光標下面顯示了VIM把光標當你做forward-word(「w」)操作:

opt1.arg = opt2.arg 
^ ^^ ^^ ^^^

在Emacs是這樣的:

opt1.arg = opt2.arg 
^ ^^ ^^

這真的取決於一個人的偏好,但我傾向於更喜歡vim風格,我想知道在emacs中有什麼最簡單的方法。我想我不是一個人誰從VIM切換到emacs的那麼也許有人已經有一個解決方案,非常的kill-wordbackward-kill-word以及:)

我知道你可以通過M-fM-b等組合得到類似的東西, 但這不是重點。我也不想開始討論哪種方法更好 - 在here中詳細討論了topis。

回答

1

大多this重複,它說:

(require 'misc) 

然後綁定要forward-to-wordbackward-to-word任何按鍵。爲了殺死,創建一些包裝這些函數的簡單函數並殺死。

+1

我之前看到過其他帖子,但正如你所看到的,我是在尋求不同的東西(與同一主題有關),所以你的回答對此沒有幫助。 – fikovnik 2010-10-16 00:59:48

+0

將'forward-to-word'指定給'C-right'很好,除了'CS-right'不再選擇文本:-( – Malvineous 2012-04-08 11:51:11

6

實際上,你可以使用'viper-forward-word

(require 'viper) 
(global-set-key (kbd "M-f") 'viper-forward-word) 
(global-set-key (kbd "M-b") 'viper-backward-word) 
+0

由於某些原因,我必須使用大寫字母才能使其工作: (要求'v蛇') (全球設置密鑰(kbd「Mf」)'viper-forward-Word) (全局設置密鑰(kbd「Mb」)'viper-backward-Word) – Glen 2012-07-26 02:31:02

+1

v蛇)沒有爲我工作,我需要(需要'viper-cmd),這是奇怪的,因爲viper.el需要viper-cmd。我使用24.2.1。 – jpkotta 2012-11-26 16:24:34

+0

有與jpkotta相同的問題。使用(需要'viper-cmd)。 Im on emacs 24.3.1 – mawaldne 2014-01-23 20:27:33

0

我不知道爲什麼jpkotta的答案被刪除,但在這裏再次是:

我有一個改變,基於單詞的命令的輔助模式操作語法變化(還有CamelCaseSubwords)。對於某些口味來說它可能有點過於細化,但我發現我基本上已經不再使用單個角色動作了。

https://bitbucket.org/jpkotta/syntax-subword

@ MODS的,我不知道爲什麼這個答案將被刪除,因此,如果您選擇刪除這個答案太,我會很感激的解釋。

+0

它不會被刪除它是在另一個問題http://stackoverflow.com/a/13569228/2318073 – Ameen 2015-09-17 06:36:45

相關問題