2013-12-14 44 views
0

說,我有一個在Vim中正在編輯(HAML /紅寶石)行,像這樣:如何瀏覽水平

%img{ src: (@image.presence || 'http://placehold.it/60x80/'), alt: "", data: { "snippet-image" => "image" "<150x<80" alt="alt" /> 

我現在需要刪除alt="alt" />並更換與} }轉彎行成

%img{ src: (@image.presence || 'http://placehold.it/60x80/'), alt: "", data: { "snippet-image" => "image" "<150x<80" } } 

我在,例如,第一個{。當我已經導航到「alt =」之前,我可以用C} }代替它。問題在於有效地到達alt=部分。

  • 13W,計數或猜測詞的量,並移動該量。這是非常低效的,我花了將近半分鐘的時間指着我的屏幕來計算十三個單詞。
  • $2B,移動到行尾,將兩個字移回。在這種情況下,效率更高,但仍然需要計數,並在必須處於線路中間時斷開。
  • /alt=<cr>h搜索alt=。然後向後移動一個字符。再次說明:在這種情況下工作,但是當搜索更常見的東西時會中斷。例如,我想轉到第14個"

我想我錯過了一些簡單的概念修改器,以便在水平方向上用更長的線條更有效地導航。縱向來說,有許多東西(文本對象)可以導航,並且還有像相對編號這樣的助手。 這裏的例子是代碼。但是,在報告或文章中導航長段落文本時,我會遇到同樣的問題。

你通常如何水平導航?

回答

1

我解決了這個問題:

$vT";;c } } 
+0

你指出我在';'和','',這是我知道的。它幾乎是缺少的一塊,的確如此。 *重複最新的f,t,F或T [count]次。* – berkes

1

我認爲答案的至少一部分是(至少在我看來)長線是代碼味道;不只是你帶了導航問題,而且還因爲

  • 他們很難理解(視覺,尤其是因爲不同的編輯軟打破不同它們)
  • 大多數工具都基於行的理解(例如,當在源代碼控制中查看差異時),並且長線破壞(例如,誰改變了哪一行的「責備」輸出)。

大多數語言/語法允許「中斷」線(例如,在擊,C等的\續行字符),並且我會主張使用的是,爲了避免這樣的過長的線儘可能可能。


這麼說,我主要是堅持WORD明智W運動的(粗)的位置,或者f/t,如果有在附近一個明顯的獨特{char}

+0

我完全同意長行是代碼味道。在代碼中。在寫文章時,長線不是一種氣味,而只是一種寫作風格。即使如此:如果你遇到一條長長的路線,並發現這種臭味,你可能會決定重構它。這意味着,您必須導航該行以重構它。換句話說:還有很多情況下,人們必須水平導航長線,並希望有效地這樣做。 – berkes

+1

在文章中,段落通常(用':set wrap')在多個屏幕線上被軟劃分;然後我使用'gj' /'gk',或者用')'跳轉到下一句。 –

1

我通常使用f<char>/F<char>然後;直到我找到正確的地方。如果我看到有很多角色實例,我會去附近的某個獨特角色或退回到/搜索命令。這也是品味的問題。

0

一點點改進romainl答案:

$3T"C } } 

我不得不離開回答的評論,但我沒有足夠的聲譽

相關問題