Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

年份: 2022 年

Vim 視窗管理工具

Posted on 2022 年 6 月 21 日2022 年 7 月 8 日 By 日落 在〈Vim 視窗管理工具〉中尚無留言

Vim 內建 window (視窗) 管理工具,如果另外有安裝 nerdtree 其實不太需要 Ctrl+Z 切回 shell,但這是使用習慣,挑自己順手的方法即可。

Vim 將 4 個檔案分別放在 4 windows

這邊介紹一下如何使用 Vim 同時開啟多個檔案做對照。


Vim Window 操作基礎

先進入 vim 的指令模式,然後輸入 :split,vim 就會自動建立垂直的 window:

Vim 垂直分割

既然有垂直分割當然也就有水平分割,在 split 前加入 vertical 即可水平分割 (vertical 也可使用縮寫 vert):

Vim 水平分割

有注意到的話,會發現 vim 游標仍然停留在第一個 windows,所以接下來就是 vim 可以在多個 windows 中切換 focus。

在命令模式中鍵入 Ctrl+W 就會進入 windows 管理模式,再按第二次 Ctrl+W 即可將 focus 移動到下一個 windows (注意綠色游標),有多個視窗就多切換幾次,以此類推

Ctrl+W 讓 vim focus 到另一個 windows

另外要注意:你如果是在瀏覽器的 web console 中,請不要使用視窗模式,因為 ctrl+W 會被瀏覽器先 catch 到,瀏覽器就把你目前正在用的視窗關閉 …. _Drz。

快速切換 windows

還記得如何快速複製多行的指令嗎?3yy 往下複製 3 行的內容;2dd 往下剪下二行的內容。

這些快速切換指令,也適用在 windows 操作上。下面直接用圖片介紹操作方法:

有沒有發現 Vim 的操作其實基礎都差不多?同樣一個邏輯適用於類似了情況,依照自己的需求,適當得使用 J、K、H、L 即可。

另外也有朋友覺得 tmux 的視窗操作較為順手,所以先用 tmux 開多個視窗,然後每個視窗個別開一個 Vim。到底哪個方式比較順手,就讓讀者自行決定。

其他 windows 相關操作

  • 二個視窗對調:Ctrl+W → X
  • 分割 windows,新的在右邊:vert bo split
  • 調整 windows 大小::resize 10、:resize +5、:vertical resize +3,其他請參考 vim resize 說明。

其他與 windows 相關的操作,可以透過在 vim 中使用指令 :h windows 來了解。

若有相關指令在本文中未提及,歡迎在文章下方留言,與其他人分享!


感謝網友 arizvisa 補充說明,想了解 vim cursor 相關的操作邏輯,可以參考以下幾份文件:

  • :help CTRL-O
  • :help CTRL-I
  • :help g;
  • :help g,
Tags:Vim

Vim 儲存檔案 & 關閉

Posted on 2022 年 6 月 20 日2022 年 6 月 20 日 By 日落 在〈Vim 儲存檔案 & 關閉〉中尚無留言

聽了某分享,聽到 :wq 和 ZZ 一樣都是儲存並關閉,和印象中的有些出入,所以直接 :h 查 vim 的說明。

:h wq

Write the current file and close the window. If this was the last edit-window Vim quits.
Writing fails when the file is read-only or the buffer does not have a name. Quitting fails when the last file in the argument list has not been edited.

:h ZZ

Write current file, if modified, and close the current window (same as “:x”). If there are several windows for the current file, only the current window is closed.

所以主要差異有:

  • :wq 不管檔案是否有變更、異動,都會在 vim 關閉之前寫入檔案;如果使用 ZZ 則僅在檔案內容有變更時才會寫檔,否則直接退出 vim。
  • :wq 後面可以加上參數。例如寫入後關閉,但是希望另存新檔時,可以使用 :wq new-file 來要求 vim 將內容寫入其他檔案。
Tags:Vim

近期的鐵氟龍膠帶

Posted on 2022 年 5 月 17 日2022 年 5 月 14 日 By 日落 在〈近期的鐵氟龍膠帶〉中尚無留言

大約十年前,市面上可以找到的是下面這款鐵氟龍膠帶:

近期在商場尋找時,這牌的商品已經找不到了。取而代之的是中興化成的這款:

膠帶中間層多了網狀支撐,感覺膠帶比較不會變形,不過似乎不影響摩擦力。

舊滑鼠看起來有機會再戰個三年 XD

Tags:生活雜記

編譯 Chromium OS 的 parallel jobs 設定

Posted on 2022 年 5 月 14 日2022 年 5 月 14 日 By 日落 在〈編譯 Chromium OS 的 parallel jobs 設定〉中尚無留言

fix target jobs in /mnt/host/source/chromite/

按照 Building CromiumOS 的說明,並沒有提到任何 parallel jobs 的設定方法,目前只知道目前 (2022-05) 偵測 CPU cores 的程式有錯誤,若主機有 N 個 core,build package 階段可能會出現 NxN 個 parallel jobs。

方法一:加上 –jobs 參數

在 build_package 時,加上參數 --jobs=N,以便讓 build script 僅使用指定的 job mount 來建立編譯環境。例如:

build_packages --jobs=1 --board=${BOARD}

方法二:在 build_package 之前 grep 並做修改

進入 cros_sdk (chroot) 並設定好 BOARD 之後,透過 grep -r jobs ~/chromiumos/src 尋找是否有錯誤的設定。例如可能會看到以下設定:

./platform/tast/src/chromiumos/tast/cmd/tast/internal/build/portage.go:92:     add("emerge", "--jobs=16", "--usepkg", "--onlydeps", "--update", "--deep", "1")

或是:

./platform/factory/py/bundle_creator/docker/util.py:154:        os.path.join(temp_dir, 'MANIFEST.yaml'), '--jobs', '7'

script 有指定 parallel jobs,但是卻沒有吃到使用者的設定值,所以一跑主機就爆。


建議:

  • 處理器建議要有 16 cores
  • 記憶體建議 32 GB 以上
  • 注意一下 golang 相關的參數,go build 把主機記憶體吃光,導致編譯到一半 kernal panic
Tags:作業系統

Cygwin

Posted on 2022 年 5 月 14 日2022 年 5 月 14 日 By 日落 在〈Cygwin〉中尚無留言

很久以前,可以下載 GnuWin32 並修改 PATH 來使用 tool chain,不過 GnuWin32 似乎已經不再維護。目前看起來除了 WSL 方案以外,似乎只剩下 Cygwin 了:https://cygwin.com/index.html

Cygwin 除了常用工具以外,似乎也有把 moreutils 包進去,在安裝選單可以自行選擇是否需要安裝,感覺還算不錯。

Tags:Windows

文章分頁

上一頁 1 ... 11 12 13 ... 22 下一頁

其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.