linux上用键盘控制鼠标的软件_完全不用鼠标写代码!你信么?[视频]

d7f29f83435b3a2fef81a4bbd505aaeb.png
完全不用鼠标写代码!你信么?https://www.zhihu.com/video/1176551234152083456

平常撸代码的时候不喜欢使用鼠标和触摸板,可能是比较懒吧(历史的倒退),手指懒得移动到鼠标,又或者感觉使用键盘快捷键要更快一些。 可能很多人感觉写代码不用鼠标是一件听着有点不可思议的事情,但是笔者平常如果是在终端下,确实是不用鼠标的。

下面介绍一些我在 macbook 下的一点使用经验,可以有效减少对鼠标的依赖。我想会有一部分 linux/mac 用户朋友和我一样喜欢鼓捣一些工具软件吧。本文不是让你完全抛弃鼠标或者触摸板,只是在纯编辑场景下,手指在键盘和鼠标之间来回切换笔者总感觉不太爽,介绍一些能够在终端下脱离鼠标的方式,一定程度提升你操作效率。

视频里会简单介绍一些这些工具或者配置的修改,感兴趣的可以自己折腾一下。(纯属娱乐,不用较真,看完之后不要砸了鼠标)。

Alfred

Alfred 是 mac 下的一个神器,不过笔者其实用的非常基础,主要就是用来查找 app 和快速搜索打开文件。 比如随便搜一个软件的首字母,我们就可以通过它快速切到一个软件,而不需要用鼠标去点。 比如想打开 chrome,直接输入 chr 基本就可以找到然后回车一下就打开了,这样就可以用纯键盘来切换软件啦!(Alfred会根据你的打开频率调整候选项顺序)。

  • 直接调用 Alfred 输入你想要搜索的软件开头,可以快速打开软件或者切到已经打开的软件
  • 出入空格然后加上文件名前缀可以模糊搜索你想要打开的文件,使用 command+回车打开文件所在目录

magnet 窗口调整

macbook 好像不支持窗口快速调整,使用这个小软件可以快速分割窗口,比如同时打开了 chrome 和iterm2,可以使用快捷键让他们快速占用左右半边屏幕。 (如果你有更好用的请评论区推荐,这个一直是笔者的一个小痛点),下边是笔者找到的一个 i3 替代方案,感觉也挺折腾。另外 @leo陶 提到了一个 hammerspoon 可以试试。(还有个 yabai)

https://github.com/leoatchina/leoatchina-hammerspoon​github.com https://medium.com/@haintburger/macos-%E5%85%8D%E6%BB%91%E9%BC%A0%E7%9A%84%E8%A6%96%E7%AA%97%E7%AE%A1%E7%90%86-chunkwm-skhd-i3-wm-339e81893b80​medium.com 用于 macOS 平铺式窗口管理器 - yabai​blanboom.org
0649fa9346f0f805867111f8b394a896.png

键盘键位修改

笔者使用的 hhkb,就是这个键位设置比较变态的键盘。因为有些键位设计笔者用得不爽,网上搜索到一个 macos 改键神器 Karabiner-Elements 。 除了做一些基本的键位映射修改(比如你可以把左边的 capslock 修改成 ctrl 解放小指头),还可以通过 json 配置做一些比较复杂的修改,比如我把 command + c/v 复制粘贴改成了 right_command + n/p 方便我右手单手操作。 后边你会看到它的更多使用方式。以下是我的键位修改配置,你可以参考然后修改成自己需要的键位设置。

PegasusWang/linux_config​github.com
fb6bd06909593ba0e7cd95d640a0b618.png

dab43095a8d7d9e5575c8c48b53d8c9c.png
标准指法

切换软件快捷键

在 macbook 下可以用 command + tab 来在软件之间切换,当然如果打开的软件比较多可能效率不高。但是如果是在频繁使用的两个软件之间切换效率就不错。 比如笔者写这篇博客的时候(neovim写markdown),刚打开了浏览器,就可以不断使用 command+tab 在我的 iterm2 和 chrome 之间切换。

另外如果同一个软件打开了多个窗口(比如使用command+n又打开了一个chrome),还可以使用 commmand + ~ (这个macbook 笔记本键盘的左上角,hhkb 右上角的键)在这些窗口之间快速切换。这样也一定程度避免了使用鼠标。 这里笔者也修改了键位,把 right_option 修改成了 ~,直接右手掌就可以压到这个按键。

总结一下就是:

  • command + tab : 切换软件
  • command + ` : 同一软件多个不同窗口切换
  • ctrl + 1/2 : 选择桌面(需要在系统设置-> 键盘 -> 快捷键 -> 调度中心 去设置)

iterm2 修改

iterm2 我做的修改就是使用 left_command + jk 来左右切换 tab。使用 left_command +, 打开设置,然后 keys-> key Bindings 增加绑定就好。 比如我增加的就是使用 command + jk 来切换 Previews Tag 和 Next Tab,这样切换窗口的时候用键盘就很快了。

left_command 和 right_command 在空格的左右两边,非常容易触碰。(我对键位的所有修改都希望手指不离开主键盘区域,减少手指移动从而快速操作)。对于 iterm2和浏览器等,你也可以使用command+数字 来切换到第几个 tab,在 tab 比较少的时候也很方便。

Vim(Neovim) 修改

vim 平常我和喜欢分屏编辑,同时打开很多文件。vim 自带的切换窗口使用的是 ctrl + w + hjkl,三个按键效率不高。所以我改成了 使用 ctrl + hjkl 来进行窗口切换。因为是在终端下使用 neovim 打字,所以一般来说也无需鼠标。 使用 ctrl+hjkl 来切换窗口之后可以有效提升切换速度,笔者 vim 分屏也是映射了快捷键从而快速分割屏幕,视频里会进行演示。

同时笔者还修改了 Vim 的 Esc 和 保存退出以及分屏操作,同样使用主键盘区就可以快速实现。(笔者几乎所有的博客都是用 vim + markdown 插件编辑然后上传到网站的)

" (.vimrc) use ctrl+h/j/k/l switch window
noremap <C-h> <C-w>h
noremap <C-j> <C-w>j
noremap <C-k> <C-w>k
noremap <C-l> <C-w>l
" 使用 jj 替代 esc
inoremap jj <Esc>`^
" 使用 leader + w(我的leader改成了逗号),快速保存。无论是在 insert 还是 normal 模式
inoremap <leader>w <Esc>:w<cr>
noremap <leader>w :w<cr>
" 使用 leader + e 实现退出
noremap <leader>e :q<cr>

Tmux 修改

Tmux 也是笔者平常使用很多的一个工具,但是默认的切换窗格(pane)的快捷键也不太喜欢,就修改成了 right_command + wasd。 之前还在用 windows 的时候,经常玩游戏喜欢使用 wasd 控制方向就习惯了这个键位,很多玩过单机游戏的小伙伴应该比较熟悉。(注意术语:窗格(pane), 一个窗口(window)可以分割很多个窗格(pane))

# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# use shift + up/down switch window
bind -n S-Up  previous-window
bind -n S-Down next-window

我先是用 tmux.conf 的配置修改成了 left_option + 方向,但是我键盘没有方向键啊,于是我又使用了上边提到的改键工具, 把 right_command+wasd 分别映射到 left_option + 方向 切换窗格(pane)了。而且切换窗口使用 ctrl+b+ n/p 也不好用,我索性也改成了 right_command + jk,这样最常用的几个操作我就不需要费劲使用 tmux 的 ctrl+b 前缀了。

on-my-zsh 修改(终端使用 vi-mode 用 vim 模式操作命令)

这里我用了 oh-my-zsh 的 vi-mode 插件,只需要按一下 Esc 好家伙又可以用 vim 的方式来操作命令了,我对 vim 可就比较熟悉了。 vim 大部分 normal 命令都可以用,可以很快地修改命令行了。改完之后同样 vim 的方式可以进入插入模式,回车执行命令(或者改完了直接回车不进入插入模式也可以执行),视频里我会做一个简单演示。你可以参考下我的 zshrc 文件,使用了插件管理器来安装 vi-mode。

PegasusWang/linux_config​github.com
fb6bd06909593ba0e7cd95d640a0b618.png

看很多人一个字符一个字符在命令行里边移动修改,慢的难受啊。(如果你用 vim 笔者强烈建议你逼着自己适应一下 hjkl 代替方向,花几天或几周适应了养成肌肉记忆不过脑子之后手指就可以脱离方向键了,手指不离主键盘区,绝对提升效率。即使你不用终端下的 vim 以后 IDE 装个插件也是可以一定程度提升纯编辑效率的,几乎所有主流开发工具都有 vim 插件)

chrome 插件 Surfingkeys/vimium

作为一个 web 后端 crud boy,目前写 python 和 golang 居多。终端下虽然可以摆脱鼠标,但是进入浏览器之后还是没辙了。 使用了 vimium 或者类似插件之后,可以用 vim 的方式操作浏览器,同样可以一定程度上摆脱鼠标(之前笔者有视频介绍过 vimium,评论区有小伙伴提到了更强大的 surfingkeys,感兴趣的可以试试)。

有时候浏览器下还是偶尔用到方向,我依旧使用 right_command+wasd 来控制方向,手指不离主键盘区。

注意:这里改键工具 Karabiner-Elements json 配置里是可以限定 app 的,所以刚才我只在 iterm2 下使用 right_command + wasd 切换 tmux 窗口,其他软件还是上下左右,并不会冲突。你可以让同样的组合键在不同的 app 下发挥不同的作用,强大,具体请看上文 github 里的配置。

readline 通用快捷键

mac/linux 下很多软件都是用了 readline (行编辑库),所以你可以用非常多类似快捷键来进行操作,如果你是 emcas 用户应该就已经非常熟悉了。 当然终端下你也可以用刚才提到的 oh-my-zsh 插件 vi-mode,使用你熟悉的 vim 的模式来快速操作命令行文本,vim normal 模式下很多操作连 ctrl 前缀都省了,笔者觉得非常方便。

fd7c024a27f45c356029b0078216e6b8.png
Readline Cheat Sheet​readline.kablamo.org

小结

可能完全不用鼠标有点极端了,但是笔者感觉多用快捷键是可以一定程度提升效率的,因为纯键盘操作非常快(前提是对你的键盘很熟悉并且能够盲打),当你手还没移动到鼠标的时候, 用键盘甚至就已经操作完成了。当然还是有很多场景离不开鼠标(触摸板)的,也不用钻牛角尖,使用工具的目的是为了提升效率,这也是笔者一直在坚持更新这个专栏系列的原因,如果有一些好玩好用的东西,我会以尽量简单易懂的方式分享给大家。同时评论区也经常出现很多笔者不知道的工具,也算是开阔了一点眼界。

作为一个能折腾的小码农,一般键盘满足不了我的时候,我就会用工具来修改让键盘适应我,并且修改都是在主键盘区,双手始终不离主键盘区域,增加效率,同时也能够适应 hhkb 这种变态的键盘了。如果大家觉得键盘难用,每天用着不爽就可以尝试修改而不是天天都要忍受它。

以上是笔者的日常使用mac的一些经验小技巧,如果你有更好的技巧或者好用的软件可以留言分享,帮助大家提升效率。

近期文章:

PegasusWang:程序员双十一剁手指南​zhuanlan.zhihu.com
48548a9cd49136585c86e0d754f9bd28.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值