iterm php,iTerm2笔记
本文是 iTerm2 的使用筆記,不定期更新。
1 注釋說明
對于 Preferences 的修改,=> 表示需要切換選項卡,-> 表示在同一選項卡內
2 參考
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:如圖
iterm2-hotkey
Profiles
Profiles 點左下方的「+」創建一個新的 Profile,選擇 Window,然后修改 Style 為 Full-Width Bottom of Screen 或者 Full-Width Top of Screen,然后修改左下角 Other Actions... 為 Set as Default。此后,退出 iTerm2 當前終端窗口,新建一個 iTerm2 窗口,以后就能用 你在前面設置的熱鍵 Hotkey 來調用了:如圖
iterm2-profile
其他的 Profiles 設置備份
General
Working Directory
Reuse previous session's directory:每次打開新的標簽頁、切割出新的 panel 時,重用切割來源的目錄位置。例如我在某個標簽頁中切換到了 ~/Documents,此時新建 tab,則新的 tab 打開時就在 ~/Documents 下(若不如此修改,默認打開時是在 ~ 下即 Home directory):如圖
iterm2-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 后,該關還是關,不知道是不是哪里出了問題。。。
302 顯示命令執行時間
菜單欄 View -> Show Timestamps
iterm2-show-time-stamps
303 使用正則表達式搜索
在終端窗口使用 cmd+f 進行搜索時,點選搜索框左側的下拉三角號,可以選擇使用正則表達式搜索:
iterm2-regular-expression-search-regex
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 了。
修改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 了
暫時取消系統級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 了,而后者……已經棄坑了。
總結
以上是生活随笔為你收集整理的iterm php,iTerm2笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java创建链表成绩管理系统_成绩管理系
- 下一篇: c语言字符串定界符,关于c ++:按字符