2015-11-24 75 views
0

是否有一種簡單的方法來配置單個組合鍵來殺死當前光標下最內層塊的內容。換句話說在C模式下殺死當前塊

if (foo) { 
    bar; 
    baz; 
} 

擊中光標在塊內的任意位置的鍵組合時,會轉變成

if (foo) { 
} 

。同樣,如果光標位於foo上的任何位置,我希望能夠使用一個組合鍵殺死if子句的後衛內容。

回答

0

是的。安裝expand-regionM-x package-install expand-region,並將(require 'expand-region)添加到您的.emacs

你正在尋找的功能是er/inside-pairs,這將擴大,直至擊中(){}""等。要像C-=其綁定到特定的鍵盤命令,把這個在您的.emacs

(global-set-key (kbd "C-=") 'er/inside-pairs) 
+0

這是涼。我注意到了一件有趣的事情。如果你有一個函數'f(int foo,char bar)'而我在'int'上展開區域,它會擴展單詞'int'。如果我再次展開區域,它會擴展所有'int foo,char bar'而不是隻是'int foo'。任何想法如何獲得後者的行爲? – eof

+0

不,我不認爲這是'expand-region'中的內置擴展。你可以調用這個函數:http://pastebin.com/raw.php?i=3NF7STBM似乎有一些支持爲'expand-region'添加額外的擴展,但我從來沒有搞錯過。 –