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)

  1. Keys
    • Keys -> Hotkey -> Show/hide all windows with a system-wide hotkey:如图
      iterm2-hotkey
  2. 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

有几个坑,记录一下:

  1. 在需要绑定 F11 时我发现总是展示桌面,无法输入 F11。于是我在想可能是系统快捷键绑定了。于是在「系统偏好设置」->「键盘」中的「快捷键」->「调度中心」找到了 F11,暂时勾选掉该选项,于是能够输入 F11 了
  • 暂时取消系统级F11快捷键
  1. 如果想绑定 Meta Key,见「#305 使用 emacs 模式进行行命令编辑」;如果不想绑定 Meta Key,按空格跳过
  2. 在绑定 insert 时,不知为啥,一直没法输入该键。但后来注意到一句话 Press Space to skip to the next key.,因此就决定按空格跳过该键的映射(反正这个键位映射主要是给命令行用的,而命令行中要做替换也不需要用到 insert——启用了 vi-mode,用 Esc 然后 R 就行了阿~)
  3. 提醒:
    1. 不要提前输入。例如在映射 F1 时就按 F1,等到跳出要求映射 F2 时再按 F2,而不要连续按 F1、F2。否则系统会认为 F1+F2 这个(顺序?)组合键才是 F1
    2. 在发现映射错误时,如果还没映射完,那就等 10 秒,程序会自己停止;然后重新 source ~/.zshrc 就能重新调用该 zkbd 进行键盘映射了;如果已经映射完,想改,那么删除 ~/.zkbd 文件夹下的对应配置文件(类似 xterm-256color-apple-darwin17.0 字样),然后重新 source ~/.zshrc 即可

0 八卦

【八卦01】由于 Mac OS 自带的 terminal 没有简单的方法实现随时随地从屏幕上方「下拉」/「上拉」调用的功能(具体效果类似 Guake),我找到了 iTerm 2。虽然还是尽可能想避免非三平台通用的软件,不过权衡之后我觉得随时随地调用终端这件事更重要,至于过分依赖单平台特用的软件这种问题……后面具体使用时再看吧。

【八卦02】至于为什么不用 Visor,那是因为它已经切换到 TotalTerminal 了,而后者……已经弃坑了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,569评论 25 707
  • 【1027今日话题】 你生命中最重要的朋友,是怎么认识的?你们有没有吵过架呢?是如何重归于好的? ————————...
    朱朱的餐具阅读 80评论 0 1
  • 星期五 雨 Don't sell yourself short. You're gorgeous just the...
    sophietyl阅读 156评论 0 0
  • 开学了,不是初中不是高中。大学开学了。一个陌生的地方。邢台,离我的家也不是特别远,没有思念的惆怅。刚下车的时候想...
    磨磨唧唧小老婆儿阅读 186评论 4 1