iTerm2筆記
本文是 iTerm2 的使用筆記,不定期更新。
1 註釋說明
- 對於 Preferences 的修改,
=>
表示需要切換選項卡,->
表示在同一選項卡內
2 參考
https://www.iterm2.com/documentation.html
https://marcjenkins.co.uk/drop-down-terminal-with-iterm2/
https://www.zhihu.com/question/27447370
3 雜
301 如何隨時隨地一鍵呼叫 Quake-like iTerm2
首先宣告:由於 Mac OS 本身對窗體「最大化」的設計,某個窗體最大化後似乎就獨佔這一螢幕了,因此貌似沒法實現在已經最大化視窗的那個桌面上呼叫 iTerm2。
主要更改 Preferences 中的 2 個地方:(寫作本文時,iTerm2 版本號為3.1.4)
- Keys
-
Keys -> Hotkey -> Show/hide all windows with a system-wide hotkey:如圖
-
Keys -> Hotkey -> Show/hide all windows with a system-wide hotkey:如圖
- Profiles
-
Profiles 點左下方的「+」建立一個新的 Profile,選擇 Window,然後修改 Style 為 Full-Width Bottom of Screen 或者 Full-Width Top of Screen,然後修改左下角 Other Actions... 為 Set as Default。此後,退出 iTerm2 當前終端視窗,新建一個 iTerm2 視窗,以後就能用 你在前面設定的熱鍵 Hotkey 來呼叫了:如圖
-
Profiles 點左下方的「+」建立一個新的 Profile,選擇 Window,然後修改 Style 為 Full-Width Bottom of Screen 或者 Full-Width Top of Screen,然後修改左下角 Other Actions... 為 Set as Default。此後,退出 iTerm2 當前終端視窗,新建一個 iTerm2 視窗,以後就能用 你在前面設定的熱鍵 Hotkey 來呼叫了:如圖
其他的 Profiles 設定備份
-
General
- Working Directory
- Reuse previous session's directory:每次開啟新的標籤頁、切割出新的 panel 時,重用切割來源的目錄位置。例如我在某個標籤頁中切換到了
~/Documents
,此時新建 tab,則新的 tab 開啟時就在~/Documents
下(若不如此修改,預設開啟時是在~
下即 Home directory):如圖
- Reuse previous session's directory:每次開啟新的標籤頁、切割出新的 panel 時,重用切割來源的目錄位置。例如我在某個標籤頁中切換到了
- Working Directory
-
Text
- 在使用 agnoster 作為 zsh 主題的情況下,更改字型為 Font -> Change Font -> All Fonts -> 12 pt Meslo LG S DZ Regular for Powerline
-
Session
- Closing -> Always Prompt before closing
- 注:Prompt before closing if there are jobs running besides 似乎不起作用……例如我新增了 vim 或 top 後,該關還是關,不知道是不是哪裡出了問題。。。
- Closing -> Always Prompt before closing
302 顯示命令執行時間
選單欄 View -> Show Timestamps
303 使用正規表示式搜尋
在終端視窗使用 cmd+f 進行搜尋時,點選搜尋框左側的下拉三角號,可以選擇使用正規表示式搜尋:
304 無滑鼠模式複製文字
開啟 cmd+f 搜尋文字,高亮游標標記了目標文字後,按 Tab 向右選擇文字,按 Shift+Tab 向左選擇文字,文字同時被複制到了搜尋框中;選擇足夠的文字後,cmd+A 然後 cmd+c 即可完成複製
305 使用 emacs 模式進行行命令編輯
想在 iTerm2 中使用 emacs 模式進行行編輯如游標前單詞刪除、游標移動,需要使用 Alt 時,一直有問題;後來找到了該帖子,修改了 Preferences => Profiles -> [你自己的Profile] -> Keys,把其中的右 Option 鍵改為了 Meta 鍵,左 Option 改成了 Esc+。然後就能用左 Options 即普通鍵盤上的左 Alt 來使用普通鍵盤上的 Alt 了。
關於 shell 行編輯的快捷鍵,見 MIT 的一個文件,摘錄常用的幾個:
C- 表示 Ctrl 開頭,M- 表示 Alt 開頭
- 位置
- 行跳轉
- C-a:跳轉到行首
- C-e:跳轉到行尾
- 單詞跳轉
- M-b:向游標左側(行首方向)跳轉 1 個單詞
- M-f:向游標右側(行尾方向)跳轉 1 個單詞
- 行跳轉
- 編輯
- 行編輯
- C-k:刪除至行尾
- C-w:刪除游標左側(游標與行首之間)最近的 1 個單詞
- M-d:刪除游標右側(游標與行尾之間)最近的 1 個單詞
- 行編輯
tip:
- C-a 中的 a 可理解為 stArt 中的 a;C-e 中的 e 可理解為 End 中的 e
- C-k 中的 k 可理解為 Kill 中的 k
- C-w 和 M-d 的位置正好一組在左,一組在右,可對應理解為刪除左側還是刪除右側
306 使用 vi 模式進行行命令編輯
如果你是原生 Mac 鍵盤黨,這段可以無視;如果你是外接標準鍵盤黨(即鍵盤上有功能鍵區 Insert/Delete/Home 等 6 個鍵),請往下看
改成 vi-mode 方式後,發現在 oh-my-zsh + iTerm2 + vi-mode 條件下進行行編輯的話,vi 模式快捷鍵不太方便,主要是說按 Home/End/Delete 等鍵總是會出問題。看到這個issue所說,好像是鍵位繫結問題。搜到了一個鍵位繫結修改方案:
# 修改鍵位繫結的程式碼
# 來源:https://bbs.archlinux.org/viewtopic.php?pid=201976#p201976
# 原始可能是:http://zshwiki.org/home/zle/bindkeys
autoload zkbd
[[ ! -f ${ZDOTDIR:-$HOME}/.zkbd/$TERM-$VENDOR-$OSTYPE ]] && zkbd
source ${ZDOTDIR:-$HOME}/.zkbd/$TERM-$VENDOR-$OSTYPE
[[ -n ${key[Backspace]} ]] && bindkey "${key[Backspace]}" backward-delete-char
[[ -n ${key[Insert]} ]] && bindkey "${key[Insert]}" overwrite-mode
[[ -n ${key[Home]} ]] && bindkey "${key[Home]}" beginning-of-line
[[ -n ${key[PageUp]} ]] && bindkey "${key[PageUp]}" up-line-or-history
[[ -n ${key[Delete]} ]] && bindkey "${key[Delete]}" delete-char
[[ -n ${key[End]} ]] && bindkey "${key[End]}" end-of-line
[[ -n ${key[PageDown]} ]] && bindkey "${key[PageDown]}" down-line-or-history
[[ -n ${key[Up]} ]] && bindkey "${key[Up]}" up-line-or-search
[[ -n ${key[Left]} ]] && bindkey "${key[Left]}" backward-char
[[ -n ${key[Down]} ]] && bindkey "${key[Down]}" down-line-or-search
[[ -n ${key[Right]} ]] && bindkey "${key[Right]}" forward-char
有幾個坑,記錄一下:
- 在需要繫結 F11 時我發現總是展示桌面,無法輸入 F11。於是我在想可能是系統快捷鍵繫結了。於是在「系統偏好設定」->「鍵盤」中的「快捷鍵」->「排程中心」找到了 F11,暫時勾選掉該選項,於是能夠輸入 F11 了
- 如果想繫結 Meta Key,見「#305 使用 emacs 模式進行行命令編輯」;如果不想繫結 Meta Key,按空格跳過
- 在繫結 insert 時,不知為啥,一直沒法輸入該鍵。但後來注意到一句話
Press Space to skip to the next key.
,因此就決定按空格跳過該鍵的對映(反正這個鍵位對映主要是給命令列用的,而命令列中要做替換也不需要用到 insert——啟用了 vi-mode,用 Esc 然後 R 就行了阿~) - 提醒:
- 不要提前輸入。例如在對映 F1 時就按 F1,等到跳出要求對映 F2 時再按 F2,而不要連續按 F1、F2。否則系統會認為 F1+F2 這個(順序?)組合鍵才是 F1
- 在發現對映錯誤時,如果還沒對映完,那就等 10 秒,程式會自己停止;然後重新
source ~/.zshrc
就能重新呼叫該 zkbd 進行鍵盤對映了;如果已經對映完,想改,那麼刪除~/.zkbd
資料夾下的對應配置檔案(類似xterm-256color-apple-darwin17.0
字樣),然後重新source ~/.zshrc
即可
0 八卦
【八卦01】由於 Mac OS 自帶的 terminal 沒有簡單的方法實現隨時隨地從螢幕上方「下拉」/「上拉」呼叫的功能(具體效果類似 Guake),我找到了 iTerm 2。雖然還是儘可能想避免非三平臺通用的軟體,不過權衡之後我覺得隨時隨地呼叫終端這件事更重要,至於過分依賴單平臺特用的軟體這種問題……後面具體使用時再看吧。
【八卦02】至於為什麼不用 Visor,那是因為它已經切換到 TotalTerminal 了,而後者……已經棄坑了。
相關文章
- iTerm2 配置
- iTerm2 使用技巧
- MacOS 使用iterm2Mac
- iterm2配色方案
- iTerm2摸魚指北
- Iterm2 keyboard shortcut
- iTerm2 & Oh My Zsh
- iterm2常用快捷鍵
- iTerm2教程|如何使用iTerm2對環境進行重新配色和美化?
- 在 iTerm2 中使用 tmuxUX
- Mac 終端利器 - iTerm2Mac
- iTerm2 + ZSH 簡風設定
- 印象筆記 --- 方法分享筆記筆記
- Mac 配置 iTerm2 + oh-my-zshMac
- iTerm2連線遠端主機
- iterm2上傳下載檔案
- iTerm2 for mac配置克隆會話功能Mac會話
- 筆記筆記
- CUUG筆記 ORACLE索引學習筆記筆記Oracle索引
- 主動筆記與被動筆記筆記
- 淘寶記錄筆記筆記
- iTerm2 如何設定半透明視窗?
- iTerm2 新使用者的亮點
- 心情筆記筆記
- 命令筆記筆記
- 筆記:Docker筆記Docker
- Meteor筆記筆記
- ES筆記筆記
- AbstractQueuedSynchronizer筆記筆記
- new筆記筆記
- vio筆記筆記
- Liunx筆記筆記
- Nacos 筆記筆記
- oracle筆記Oracle筆記
- html 筆記HTML筆記
- Cookie筆記Cookie筆記
- jQuery筆記jQuery筆記
- Restful 筆記REST筆記