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:如图

5a26223f8cb0

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 来调用了:如图

5a26223f8cb0

iterm2-profile

其他的 Profiles 设置备份

General

Working Directory

Reuse previous session's directory:每次打开新的标签页、切割出新的 panel 时,重用切割来源的目录位置。例如我在某个标签页中切换到了 ~/Documents,此时新建 tab,则新的 tab 打开时就在 ~/Documents 下(若不如此修改,默认打开时是在 ~ 下即 Home directory):如图

5a26223f8cb0

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

5a26223f8cb0

iterm2-show-time-stamps

303 使用正则表达式搜索

在终端窗口使用 cmd+f 进行搜索时,点选搜索框左侧的下拉三角号,可以选择使用正则表达式搜索:

5a26223f8cb0

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 了。

5a26223f8cb0

修改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 了

5a26223f8cb0

暂时取消系统级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 了,而后者……已经弃坑了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值