---
# System prepended metadata

title: vim
tags: [Unix-like]

---

---
tags: Unix-like
---
# vim

[TOC]

## 操作

### 移動

Ctrl-f：後一頁
Ctrl-b：前一頁

```
               ge      b          w                             e
               <-     <-         --->                          --->
        This is-a line, with special/separated/words (and some more). 
           <----- <-----         -------------------->         ----->
             gE      B                   W                       E
```



```
                  ^
             <------------
        .....This is a line with example text 
        <-----------------   --------------->
                0                  $
```

跳到指定的字，往後搜尋 `f+<?>` ，往前搜尋 `F+<?>` ，可以用 `;` 重複動作

```
                           3fl
                  --------------------->
            fh           fy
        ---------->--------------->
        To err is human.  To really foul up you need a computer. 
                  <---------------------
                            Fh
```

```
                            %
                         <----->
                if (a == (b * c) / d) 
                   <---------------->
                            %
```

```
            |   first line of a file   ^
            |   text text text text    |
            |   text text text text    |  gg
        7G  |   text text text text    |
            |   text text text text
            |   text text text text
            V   text text text text    |
                text text text text    |  G
                text text text text    |
                last line of a file    V
```

```
                     +---------------------------+
             H -->   | text sample text          |
                     | sample text               |
                     | text sample text          |
                     | sample text               |
             M -->   | text sample text          |
                     | sample text               |
                     | text sample text          |
                     | sample text               |
             L -->   | text sample text          |
                     +---------------------------+
```

`CTRL-G` Telling where you are

```
"usr_03.txt" line 233 of 650 --35%-- col 45-52
```

```
        +------------------+             +------------------+
        | some text        |             | some text        |
        | some text        |             | some text        |
        | some text        |             | some text        |
        | some text        |   zz  -->   | line with cursor |
        | some text        |             | some text        |
        | some text        |             | some text        |
        | line with cursor |             | some text        |
        +------------------+             +------------------+
```

### 搜尋

Simple search ， `/` 往後搜尋， `?` 往前搜尋。 `^` 表示開頭。 `n N` 可以查找下一個或上一個。

The characters `.*[]^%/\?~$` have special meanings.  If you want to use them in a search you must put a `\` in front of them.

If you type "/the" it will also match "there".  To only find words that end
in "the" use: 

```
        /\<the\>
```

```
       /^The
```

The . (dot) character matches any existing character.  For example, the
pattern "c.m" matches a string whose first character is a c, whose second
character is anything, and whose third character is m.  Example:

```
        We use a computer that became the cummin winter. 
                 xxx             xxx      xxx
```

### 尋找取代

```
:n1,n2s/word1/word2/g n1～n2 之間尋找取代
:1,$s/word1/word2/g   直些取代全部 
:1,$s/word1/word2/gc  詢問是否要取代
```

### 刪除

```
        To err is human. To really foul up you need a computer. 
                         ------------------>
                                 d4w

        To err is human. a computer. 
                       ------------>
                            d$
```

```
        there is somerhing grong here 
        rT           rt    rw

        There is something wrong here 
```

### 剪下貼上

```
        a line          a line        a line
        line 2    dd    line 3    p   line 3
        line 3                        line 2
        
        teh     th     the 
         x       p
```

## 參考資料

 * [Vim: help.txt](https://vimhelp.org/)
 * [vim 程式編輯器 / 鳥哥的 Linux 私房菜](http://linux.vbird.org/linux_basic/0310vi.php)