2009-10-27 65 views
11

我嘗試了IntelliJ,並有一個小的煩惱,我無法弄清楚如果IntelliJ中有可能的解決方案。在Eclipse甚至TextMate(以及其他許多帶有自動完成功能的編輯器)中,如果您位於自動填充部分(如字符串或圓括號區域)的中間,則可以按Enter或Tab鍵到該部分的末尾。例如:IntelliJ自動完成轉義

if (blah.equals(something.toString())) 

插入符將位於toString部分括號的中間。在IntelliJ中,你可以通過沒有問題的括號鍵入,或者你可以點擊「結束」鍵來結束它。一個是一個小小的煩惱,另一個更煩人,因爲我必須把我的手從家裏排除。在日食中,我可以按Enter鍵,它會讓我走出這個... TextMate,Tab。

有沒有我可以調整的設置,或者我可以做些什麼來給我IntelliJ中的類似功能?

回答

6

在這種情況下,如果你按Ctrl-Shift-Enter CrazyCoder建議,你有這種行爲。它會添加大括號並將光標放在下一行。您也可以按Shift-Enter這會將您置於下一行,並對代碼做出較少的假設。 Ctrl-Shift-Enter根據它正在查看的代碼具有不同的行爲,因此不會給您一致的行爲。例如,在一個字符串的中間,它會將您放在行尾並添加一個分號。

這似乎是結束是首選的關鍵在這裏到達線的盡頭。如果不同的組合鍵對你更好,你可以在鍵映射中添加一個額外的鍵到行尾,但它不會因爲你處於括號中間而改變它的行爲。

看着IDEA選項,似乎括號的行爲並不是真正的活動模板,比如自動創建一個for循環,所以當你完成時你不會列出,而只是自動完成圓括號爲你,並智能地認識到你可能想流暢地輸入,就好像它沒有。

5

我試過cmd-shift-enter(在mac上),結果似乎對我更有用(在javascript代碼中)。我使用的是管道( '|')以可視化的光標位置:

前:

var x = func1(func2(|)) 

按CMD後移輸入:

var x = func1(func2());| 

所以即使增加了分號結尾處(但您仍然需要再次按Enter鍵跳轉到下一行)。

編輯

剛剛發現這個快捷方式更是有用的:

前:

if(a == b|) 

後CMD移進入

if(a == b) { 
    | 
} 

適用於php和javascript

1

由於這些答案都是慈祥的老人,我不知道是否有人知道,你可以走出封閉的自動完成鍵入 + KEY

申請在Java中,如果你做了System.out.println(「Hello World!」); 如果你的光標在「內」, + 將讓你的‘’和 + )之外,會得到()

之外