這個部份會介紹一下在編輯單行時 vim 的一些移動方式,基本上這個部份要之後配合 operator 來用會比較好用。 關於 operator 之後會介紹到,現在不需要太清楚。首先來講講如何移動到行首與行尾, 0 會移動到行首, $ 會移動到行尾。 還有另一種移動到行首的方式是 ^ ,只是這個行首的意義有點不一樣, ^ 是移動到游標所在的那一行第一個非空白字元的字,而 0 是移動到第一個字元。 舉個例子,假設游標在 how 的 h 上
1 2 3 123456789012345678901234567890123 I want to learn how to use vim. <----------------- 0 <--------------- ^ --------------> $
值得注意的是 ^ , $ 在 regular expression 上也是代表行首與行尾的意思,而 regular expression 在搜尋字串上是個蠻方便的工具,可以一起記一下 。 其他的移動方式還有 f, F, t, T ,我個人是覺得這比較適合配合 operator 來用。 f 與 t 是在單行間找字,其代表的意義分別是 find 與 to,它們可以接受一個符號,並找到單行中離游標右方最近的那個符號。 舉個例子,假設游標在 many 的 a 上
Why vim has so many key bindings? --> fy -------> tb
在上面的例子可以看到, f 會讓游標移到所要的符號上,而 t 則是到所要的符號的前一個字元。 而大寫的 F , T 則是往反方向找,它們會找離游標左方最近的符號。舉個例子,假設游標在 learn 的 r 上
Why I need to learn so many key bindings? <------- Fd <----------- TI
與基本的移動一樣,在前面加上數字作為前綴表示重複幾次。比如說,假設游標在 some 的 m 上
Can we learn some useful key bindings? <------------ 2Fn ----------> 3te