Open 374632897 opened 8 years ago
一个 chrome 插件, 让你可以在浏览器里使用类似 vim 的快捷键来完成很多工作, 从而减少对鼠标的依赖。
t
打开历史记录或者标签内容gi
使当前页面的第一个输入框获得焦点r
刷新当前页面x
关闭当前页面/str
进行查找f
显示当前可交互内容(链接、按钮)对应的快捷键, 再按ctrl + [
退出, 如果再按 f
的话不会让它消失, 而是会执行其他动作。 a
使用 google 进行搜索I
在浏览器历史记录中进行搜索yy
拷贝当前页面的 urlb
在书签中搜索X
打开上一次关闭的窗口B
在当前打开的 tab 里进行切换gs
查看当前页面源代码gU
前往 baseUrlgu
前往当前路径的上一级gQ
停止当前所有标签的加载gq
停止当前标签页的加载ge
打开页面扩展gd
打开下载页生命诚可贵, 爱情价更高, 哦不对, 寸金难买寸光阴。 一个人的时间精力总是有限的, 对于程序员而言更是这样, 如果总是将时间浪费在一些重复的或者不必要的事情上的话, 那一天下来能做的事情就更少了。
本文主要是对自己平时所用到的对于效率提升有所帮助的方法做一些总结, 其实之前已经写了一篇了, 然而太零散, 还是决定再来一篇。
主要从以下几个方面来讲:
作为一个程序员, 平时主要用到的配置文件有.vimrc
, .alias
, .gitconfig
, .zshrc
等等等等, 如果每一次换电脑或者换环境工作的时候就需要重新写一份这些东西, 或者手动拷一份的话, 无疑是极为麻烦的, 而且也不利于维护。 所以这个时候, dotfiles 就诞生了。 它可以把我们的这些配置聚合起来,当需要修改的时候也直接走上面修改, 然后提交到 Git 仓库, 说是这样说, 其实它本质也就只是一个仓库而已, 只不过里面放的都是我们的配置文件, 而这些配置文件都是以.
开头的, 所以就叫 dotfiles
了。 当然, 你也不用自己去再写一个, 毕竟已经有了现成的, 比如Paul Irish 的dotfiles。 直接 fork 一份, 然后就可以愉快地进行修改了。 只不过使用的时候可能会出现一些依赖没有安装的情况,这个时候还可以再重新写一个脚本用于依赖的安装。 说到这里, 关于编辑器的选择也很重要, 当然, 我个人就只是使用过Sublime Text
, Vim
, 其他编辑器也有些用过, 但是都只是很粗略的接触了一些, 没有深入。 使用一个单一配置文件就能决定其功能的编辑器还是比较重要的, 这样当你切换环境的时候有了这个配置文件, 你唯一需要做的可能只是执行几条命令就行了, 不然的话还得安装一大堆插件, 修改一大堆配置, 还是比较麻烦的。
通过使用 docker 配合 dotfiles 就能够实现开发环境的大一统了。 写上一个适合自己的 Dockerfile 和一个容器管理脚本, 每次切换环境的时候不管是在 Mac 下, 还是 Linux 下还是 windows 下, 只要支持 docker 的话, 只需要下载一个 docker, 然后从 Dockerfile 构建镜像, 挂载数据卷启动容器, 这样一来你的开发环境将会由你的 Dockerfile 来决定了, 而每次环境有什么变动的话, 你需要做的也只是更新你的 Dockerfile, 再构建镜像即可。
相比于GUI, 命令行最大的优势在于减少了鼠标的操作, 不需要在键盘鼠标之间来回切换。 这里主要介绍一些能够帮助自己更快完成命令输入的快捷键。
command/ctrl + a
: 跳到行首command/ctrl + e
: 跳到行尾command/ctrl + u
: 删除光标处到行首的内容(这个在 bash 下是删除到行首, 但是在zsh下是删除一行内容)command/ctrl + k
: 删除光标处到行末的内容command/ctrl + y
: 粘贴上次删除的内容escape + f
: 以单词为单位向前移动光标(forward)escape + b
: 以单词为单位向后移动光标(back)下面几个命令都是和方向键相关的, 使用多了以后能够减少手指移动到方向键上的频率。
command/ctrl + n
: 显示下一次执行的命令 (next)command/ctrl + p
: 显示上一次执行的命令 (previous)command/ctrl + h
: 删除一个字符 (替换backspace)command/ctrl + b
: 光标向做移动(替换← back)command/ctrl + f
: 光标向后移动(替换→ forward)一些方便学习命令行的网址
option + ⬇️
| ctrl + home
: 滚到底部option + ⬆️
| ctrl + end
: 滚到顶部options + delete/backspace
: 西文状态下能够直接删除一个单词command + backspace
: 删除到行首command + ⬅️
: 文本框内跳到内容开头command + ➡️
: 文本框内跳到内容结束删除单词和删除到行首在文本编辑、浏览器地址栏里面使用的时候非常有用
命令行是强大的, 通过使用它能够简化我们的很多操作, 然而其诸多的参数却让人望而却步。 我们使用工具的初衷是为了使用工具更快捷地解决问题, 而不是被工具所束缚。 alias(音标: eliəs, 别名) 则可以帮助我们解决命令过长或者参数过多的问题。 alias 是别名的意思, 也就是另外的名字。 比如我们配置了alias n=npm
, 那么这一次会话当中, 你就可以使用 n
来 代替 npm
, 比如npm start
, 可以简化为n start
, 通常 nodejs
的项目都是通过npm start
来启动的, 那么通过配置alias s="npm start"
, 那么下次启动项目直接使用s
就可以了。 当然, 用处还有很多, 毕竟可用 *nix 下的可用命令太多了, 虽然常用的也只有那么几个。
就我个人而言最常用的配置别名的有以下几种:
bashrc
, 也就是alias reload="source ~/.bashrc"
nginx
访问日志, alias nalog="tail -f nginx/logs/access.log"
alias ip="curl ip.cn"
其他的还有很多, 比如判断某个进程是否启动, 直接输入端口号来杀死使用到它的进程等等等等
那么在哪里配置别名呢?
~/bash.bashrc
, 好像是这个~/.bash_profile
, 如果该文件不存在的话, 就直接新建一个/etc/bash.bashrc
~/.bashrc
书签 将书签进行合理的分类, 对于自己的查找是有很大的帮助的, 比如设计稿、博客、需求文档、接口文档等, 具体怎么分就因人而异了。
搜索
对于程序员而言拥有高效快速的信息检索能力是非常重要的一件事。 你可能会从 google 搜索不确定的信息, 可能去GitHub
上查找某个仓库, 可能去stackoverflow
上搜索问题解决方案, 可能去MDN
上面查看文档, 或者在docker hub
上面搜索某个镜像。 通常情况下, 搜索过程是这样的:
然而由于某些原因, 访问国外的网站可能会很慢, 从 1 - 2 的过程可能需要你花好几秒去等待, 而鉴于信息检索的频繁性, 一天下来, 可能会浪费掉你不少时间, 而这段时间里, 你可能只是在盯着屏幕发呆。
chrome
可以添加搜索引擎, 自定义关键字, 当你在地址栏里面输入对应的关键字之后按 tab
, 然后地址栏前面如果显示 使用某某搜索的时候, 就可以直接进行搜索了。 这样下来就减少了 1 - 2 的等待时间。具体操作如下:
插件
thefuck
如果是错字受的话, 可能会一不小心就输入了错误的命令, 然后命令行告诉你command not found
, 这个时候你可能会大骂一句, 'fuck(wo cao)', 然后重新输入一遍命令。 如果你安装了thefuck
的话, 那么下一次你再出现这种情况, 你只需要把你的心声告诉 terminal 即可, 输入 fuck , 然后它会猜想最有可能的, 然后告诉你, 你可以选择执行, 也可以查看其它的匹配结果来执行。 对于我来说, 最高频的大概就是 git push 结果远程没有该分支的情况了, 这个时候 fuck and enter , 就能够推上去了。
CatchMouse 当电脑有多个屏幕, 并且屏幕比较大的时候, 在多个屏幕里面移动光标是不是很麻烦? 尤其是使用鼠标的时候, 需要移动挺长一段距离才能移到另外一个屏幕。而使用 CatchMouse, 配置了指定的快捷键之后, 就可以通过快捷键来将光标移动到对应的屏幕了。
iTerm 2 毕竟 Mac 自带的 terminal 奇丑无比, iTerm 的出现, 解决的不仅仅是外观的问题。
shell
oh-my-zsh 的一个缺点是启动的时候太慢,所以经常会出现在 terminal 里面新开一个标签的话, 需要挺久的时间会话才能启动。fish 的缺点则是不兼容 bash, 不过其脚本也比较简单,最重要的是, 相比于 oh-my-zsh, 它真的很快。 不过他们的优点也是很明显的, 看官自行斟酌。
写在前面
快捷键
命令行
command/ctrl + a
: 跳到行首command/ctrl + e
: 跳到行尾command/ctrl + u
: 删除光标处到行首的内容command/ctrl + k
: 删除光标处到行末的内容escape + f
: 以单词为单位向前移动光标(forward)escape + b
: 以单词为单位向后移动光标(back)文本
option + ⬇️
|ctrl + home
: 滚到底部option + ⬆️
|ctrl + end
: 滚到顶部options + delete/backspace
: 西文状态下能够直接删除一个单词command + backspace
: 删除到行首command + ⬅️
: 文本框内跳到内容开头command + ➡️
: 文本框内跳到内容结束删除单词和删除到行首在文本编辑、浏览器地址栏里面使用的时候非常有用
代码片段
获取基本名字
配置别名
毫无疑问, 命令行是强大的, 通过它可以完成很多图形界面无法完成, 或者需要多步完成的事情。 然而命令行的选项众多, 如果每次需要实现某个需求的时候都要重复的输入这些命令的话, 无疑增加了时间成本。 幸好, 可以通过配置别名来解决这个问题。
关于这个, 可以参照Paul Irish的dotfiles.
在哪里配置别名
~/bash.bashrc
, 好像是这个~/.bash_profile
, 如果该文件不存在的话, 就直接新建一个/etc/bash.bashrc
~/.bashrc
有哪些可以配置别名
基本上所有你使用比较频繁的命令都可以配置别名, 你经常进行的一些操作也有可能通过别名来简单化。 那么有哪些东西是可以配置别名的呢?
编辑器 比如sublime, 配置一个别名指向sublime的可执行文件, 然后下次需要打开编辑器的时候, 直接运行命令即可。 当然, 最方便的一点在于, 在命令的后面跟上文件名, 就可以通过该编辑器来打开该文件
那么需要修改
nginx
配置文件的时候需要修改
bash_profile
的时候对我而言, 这两个文件通常都是需要经常改动的, 那么也顺便加个别名吧
每次修改了
bashrc
之后都要重开terminal或者重新source
一遍才能生效? 配个reload吧这样下次改动之后, 直接
reload
就能重新载入bashrc
了。经常访问的目录
经常查看的文件, 比如
nginx
的访问日志, 错误日志, 也可以使用别名。总是记不住自己的内网ip又嫌输入一串命令再慢慢查找会比较麻烦?
想查看一个进程有没有启动成功?
当然, 上面只是一小部分, 正如前文所言, 所有需要你重复输入的繁琐的命令, 都可以通过配置别名来简化操作。
我配置的一些别名
合理使用命令行
一些方便学习命令行的网址
信息检索能力 —— 善用 chrome
对于程序员而言拥有高效快速的信息检索能力是非常重要的一件事。 你可能会从 google 搜索不确定的信息, 可能去
GitHub
上查找某个仓库, 可能去stackoverflow
上搜索问题解决方案, 可能去MDN
上面查看文档, 或者在docker hub
上面搜索某个镜像。 通常情况下, 搜索过程是这样的:然而由于某些原因, 访问国外的网站可能会很慢, 从 1 - 2 的过程可能需要你花好几秒去等待, 而鉴于信息检索的频繁性, 一天下来, 可能会浪费掉你不少时间, 而这段时间里, 你可能只是在盯着屏幕发呆。
chrome
可以添加搜索引擎, 自定义关键字, 当你在地址栏里面输入对应的关键字之后按tab
, 然后地址栏前面如果显示 使用某某搜索的时候, 就可以直接进行搜索了。 这样下来就减少了 1 - 2 的等待时间。具体操作如下: