做技术
就像玩游戏

解决vim选中文字不能复制的问题

Shiming阅读(56)

概述

最近发现在iterm2中打开vim,用鼠标选中文字,并用command + c复制选中的文字,但粘贴出来是空的。查了一圈终于在iterm2的官方gitlab issue库里发现了解决办法。将Enable mouse reporting这个设置去掉即可。

版本信息

操作系统
Mac os 10.15.2

iterm2
iterm2 3.3.6
iterm2 3.3.7

vim
Vi IMproved 8.1 (2018 May 18, compiled Dec 26 2018 02:33:06)

重现步骤

  1. iterm2中使用cat命令打印文件,然后用鼠标选中command + c可以正常复制。
  2. 但是用vim打开文件,选中文字用command + c复制,却不能复制。
  3. 并且当鼠标点击vim中的文字后,vim会自动变为visual模式。

解决方案

iterm2 > Preferences > Profiles > Terminal > Enable mouse reporting 去掉勾选

mouse reporting

mouse reporting的作用是在vim编辑时识别鼠标,可以支持鼠标滚轮查看文件内容(需要在.vimrc中加入设置支持鼠标set mouse=a)。关闭了mouse reporting后就不支持鼠标滚轮了。

那要使用鼠标滚轮怎么办?

可在iterm2 > preferences > advance > 搜索mouse > scroll whell down 那里写\j > scroll whell up那里写\k,作用就是发送j/k键到vim实现滚动效果。

更多信息

Mac自带的terminal也会有这个问题,在View > Allow Mouse Reporting 去掉勾选即可

简单配置让iterm2用得更爽

Shiming阅读(128)

概述

iterm2比mac原生的terminal好用很多,是mac下必装的软件之一,装好后简单配置就用的很爽了。我个人的配置主要有以下方面,供参考:

  • 开机默认启动iterm
  • 主题设置为Solarized Dark
  • 设置更美观的中文字体
  • 开启全局快捷键opton + space方便随时唤起iterm2
  • 设置vim中鼠标选中复制功能
  • 设置vim支持鼠标滚动
  • 备份配置文件

版本信息

macOS
10.15.2

iterm2
3.3.7

开机默认启动

System Preferences > Users & Groups > Login Items > 点加号 > Applications列表选中iTerm

主题设置

Preferences > Profiles > Colors > Color Presets > 选择Solarized Dark

之所以选择这个颜色,因为这个颜色(姑且称为哑光淡蓝色吧),在很多支持配色的软件里都有,是一个经典配色了,而且我vscode也是这个颜色

字体设置

Preferens > Profiles > Text > 勾上Use a different font for non-ASCII text > 选择自己喜欢的字体

iterm的默认字体是Monaco,Monaco的中文本来也还行,但是如果将字体放大一点,会发现英文字体变大了,但是中文看起来比英文还小。

好在iterm支持为非ASCII的字符设置另一种字体,所以我选择了Helvetica Neue(和Mac下印象笔记的字体一致,相信他们的专业审美),看起来好多了。

实际效果:

全局唤醒快捷键

Preferences > Keys > Hotkey > 勾上Show/hide all windows with a system-wide hotkey
默认快捷键是option + space,用起来很顺手,在任何界面需要敲命令行,按一下唤出,再按一下隐藏,非常方便。

vim中鼠标选中复制

默认iterm2是开启mouse reporting功能的,不把它关闭鼠标选中vim中的文本,按command + c键是不能复制的(而是会进入vim的visual模式!)。我查了很久才在iterm2的官方gitlab库中搜到一个issue说到这个解决方案。网上基本上没有说法。

Preferens > Profiles > Terminal > 关闭Enable mouse reporting

设置vim支持鼠标滚动

关闭mouse reporting后,vim编辑时就不支持鼠标滚动了,但是iterm2可以设置通过发送j/k键来支持滚动,iterm2 > preferences > advance > 搜索mouse > scroll whell down 那里写\j > scroll whell up那里写\k

备份配置

自己的配置最好备份好,下次有需要再导入即可,体验保持一致。
Preferences > Profiles > Other Actions > Save All Profiles as JSON...

导出的配置文件可以放到dotfiles上传到github保存(但如果保存了密码之类的配置就不要上传了),换电脑的时候再也不用担心软件用不顺手了。

结论

  • 通过简单配置,iterm2变得更美观易用,对中文支持也更好。
  • 将配置保存到dotfiles,使用github管理有助于在任何机器上保持一致的体验。