Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

提高效率的一些技巧 #3

Open
374632897 opened this issue Oct 31, 2016 · 2 comments
Open

提高效率的一些技巧 #3

374632897 opened this issue Oct 31, 2016 · 2 comments
Labels

Comments

@374632897
Copy link
Owner

374632897 commented Oct 31, 2016

写在前面

  • 善用复制粘贴

快捷键

命令行

  • 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 + ➡️ : 文本框内跳到内容结束

删除单词和删除到行首在文本编辑、浏览器地址栏里面使用的时候非常有用

代码片段

  • 获取基本名字

    echo $(basename ${1%.*});

配置别名

毫无疑问, 命令行是强大的, 通过它可以完成很多图形界面无法完成, 或者需要多步完成的事情。 然而命令行的选项众多, 如果每次需要实现某个需求的时候都要重复的输入这些命令的话, 无疑增加了时间成本。 幸好, 可以通过配置别名来解决这个问题。

关于这个, 可以参照Paul Irish的dotfiles.

在哪里配置别名

  • Linux: ~/bash.bashrc, 好像是这个
  • Mac: ~/.bash_profile, 如果该文件不存在的话, 就直接新建一个
  • MINGW: /etc/bash.bashrc
  • CYGWIN: ~/.bashrc

有哪些可以配置别名

基本上所有你使用比较频繁的命令都可以配置别名, 你经常进行的一些操作也有可能通过别名来简单化。 那么有哪些东西是可以配置别名的呢?

  • 编辑器 比如sublime, 配置一个别名指向sublime的可执行文件, 然后下次需要打开编辑器的时候, 直接运行命令即可。 当然, 最方便的一点在于, 在命令的后面跟上文件名, 就可以通过该编辑器来打开该文件

    alias subl='/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl';

    那么需要修改nginx配置文件的时候

    subl /usr/local/nginx/conf/nginx.conf

    需要修改bash_profile的时候

    subl ~/.bash_profile

    对我而言, 这两个文件通常都是需要经常改动的, 那么也顺便加个别名吧

    alias bashrc='subl ~/.bash_profile';
    alias nconf='subl /usr/local/nginx/conf/nginx.conf';
  • 每次修改了bashrc之后都要重开terminal或者重新source一遍才能生效? 配个reload吧

    alias reload='source ~/.bash_profile';

    这样下次改动之后, 直接reload就能重新载入bashrc了。

  • 经常访问的目录

    alias ng='cd /usr/local/nginx';
  • 经常查看的文件, 比如nginx的访问日志, 错误日志, 也可以使用别名。

    alias naccess='ng && tail logs/access.log && cd -';
    alias nerror='ng && tail logs/error.log && cd -';
  • 总是记不住自己的内网ip又嫌输入一串命令再慢慢查找会比较麻烦?

    alias ip='ifconfig | grep 192';
  • 想查看一个进程有没有启动成功?

    alias is="ps aux | grep $1 -c";

当然, 上面只是一小部分, 正如前文所言, 所有需要你重复输入的繁琐的命令, 都可以通过配置别名来简化操作。

我配置的一些别名

合理使用命令行

一些方便学习命令行的网址

信息检索能力 —— 善用 chrome

对于程序员而言拥有高效快速的信息检索能力是非常重要的一件事。 你可能会从 google 搜索不确定的信息, 可能去GitHub上查找某个仓库, 可能去stackoverflow上搜索问题解决方案, 可能去MDN上面查看文档, 或者在docker hub上面搜索某个镜像。 通常情况下, 搜索过程是这样的:

  1. 在地址栏输入对应的域名, 进入该网站
  2. 鼠标一点输入框, 输入内容, 进行检索
  3. 检索结束

然而由于某些原因, 访问国外的网站可能会很慢, 从 1 - 2 的过程可能需要你花好几秒去等待, 而鉴于信息检索的频繁性, 一天下来, 可能会浪费掉你不少时间, 而这段时间里, 你可能只是在盯着屏幕发呆。

chrome可以添加搜索引擎, 自定义关键字, 当你在地址栏里面输入对应的关键字之后按 tab, 然后地址栏前面如果显示 使用某某搜索的时候, 就可以直接进行搜索了。 这样下来就减少了 1 - 2 的等待时间。具体操作如下:
image

image

image

@374632897 374632897 changed the title 提高开发效率 提高开发效率需要做些什么 Oct 31, 2016
@374632897 374632897 changed the title 提高开发效率需要做些什么 提高开发效率的一些技巧 Nov 7, 2016
@374632897 374632897 added the Tips label Nov 15, 2016
@374632897 374632897 changed the title 提高开发效率的一些技巧 提高效率的一些技巧 Jun 30, 2017
@374632897
Copy link
Owner Author

374632897 commented Aug 29, 2017

cVim

一个 chrome 插件, 让你可以在浏览器里使用类似 vim 的快捷键来完成很多工作, 从而减少对鼠标的依赖。

常用

  • t 打开历史记录或者标签内容
  • gi 使当前页面的第一个输入框获得焦点
  • r 刷新当前页面
  • x 关闭当前页面
  • /str进行查找
  • f 显示当前可交互内容(链接、按钮)对应的快捷键, 再按ctrl + [退出, 如果再按 f 的话不会让它消失, 而是会执行其他动作。
  • a 使用 google 进行搜索
  • I 在浏览器历史记录中进行搜索
  • yy 拷贝当前页面的 url
  • b 在书签中搜索
  • X 打开上一次关闭的窗口
  • B 在当前打开的 tab 里进行切换
  • gs 查看当前页面源代码
  • gU 前往 baseUrl
  • gu 前往当前路径的上一级
  • gQ 停止当前所有标签的加载
  • gq 停止当前标签页的加载
  • ge 打开页面扩展
  • gd 打开下载页

@374632897
Copy link
Owner Author

374632897 commented Sep 9, 2017

提高效率的一些技巧

生命诚可贵, 爱情价更高, 哦不对, 寸金难买寸光阴。 一个人的时间精力总是有限的, 对于程序员而言更是这样, 如果总是将时间浪费在一些重复的或者不必要的事情上的话, 那一天下来能做的事情就更少了。

本文主要是对自己平时所用到的对于效率提升有所帮助的方法做一些总结, 其实之前已经写了一篇了, 然而太零散, 还是决定再来一篇。

主要从以下几个方面来讲:

  • 让一切变得可配置
  • 善用 alias
  • 机智的浏览器
  • 善用工具
  • 强大的命令行

让一切变得可配置

dotfiles

作为一个程序员, 平时主要用到的配置文件有.vimrc, .alias, .gitconfig, .zshrc 等等等等, 如果每一次换电脑或者换环境工作的时候就需要重新写一份这些东西, 或者手动拷一份的话, 无疑是极为麻烦的, 而且也不利于维护。 所以这个时候, dotfiles 就诞生了。 它可以把我们的这些配置聚合起来,当需要修改的时候也直接走上面修改, 然后提交到 Git 仓库, 说是这样说, 其实它本质也就只是一个仓库而已, 只不过里面放的都是我们的配置文件, 而这些配置文件都是以.开头的, 所以就叫 dotfiles 了。 当然, 你也不用自己去再写一个, 毕竟已经有了现成的, 比如Paul Irish 的dotfiles。 直接 fork 一份, 然后就可以愉快地进行修改了。 只不过使用的时候可能会出现一些依赖没有安装的情况,这个时候还可以再重新写一个脚本用于依赖的安装。 说到这里, 关于编辑器的选择也很重要, 当然, 我个人就只是使用过Sublime TextVim, 其他编辑器也有些用过, 但是都只是很粗略的接触了一些, 没有深入。 使用一个单一配置文件就能决定其功能的编辑器还是比较重要的, 这样当你切换环境的时候有了这个配置文件, 你唯一需要做的可能只是执行几条命令就行了, 不然的话还得安装一大堆插件, 修改一大堆配置, 还是比较麻烦的。

Dockerfile

通过使用 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

命令行是强大的, 通过使用它能够简化我们的很多操作, 然而其诸多的参数却让人望而却步。 我们使用工具的初衷是为了使用工具更快捷地解决问题, 而不是被工具所束缚。 alias(音标: eliəs, 别名) 则可以帮助我们解决命令过长或者参数过多的问题。 alias 是别名的意思, 也就是另外的名字。 比如我们配置了alias n=npm, 那么这一次会话当中, 你就可以使用 n来 代替 npm, 比如npm start, 可以简化为n start, 通常 nodejs 的项目都是通过npm start 来启动的, 那么通过配置alias s="npm start", 那么下次启动项目直接使用s就可以了。 当然, 用处还有很多, 毕竟可用 *nix 下的可用命令太多了, 虽然常用的也只有那么几个。

就我个人而言最常用的配置别名的有以下几种:

  • reload: 主要用于重新加载bashrc, 也就是alias reload="source ~/.bashrc"
  • 常用目录: 尤其是项目目录, 或者经常访问的目录
  • 经常查看的日志文件, 比如 nginx 访问日志, alias nalog="tail -f nginx/logs/access.log"
  • ip: 这个大概是最常用的功能了, alias ip="curl ip.cn"

其他的还有很多, 比如判断某个进程是否启动, 直接输入端口号来杀死使用到它的进程等等等等

那么在哪里配置别名呢?

  • Linux: ~/bash.bashrc, 好像是这个
  • Mac: ~/.bash_profile, 如果该文件不存在的话, 就直接新建一个
  • MINGW: /etc/bash.bashrc
  • CYGWIN: ~/.bashrc

机智的浏览器

  • 书签
    将书签进行合理的分类, 对于自己的查找是有很大的帮助的, 比如设计稿、博客、需求文档、接口文档等, 具体怎么分就因人而异了。

  • 搜索
    对于程序员而言拥有高效快速的信息检索能力是非常重要的一件事。 你可能会从 google 搜索不确定的信息, 可能去GitHub上查找某个仓库, 可能去stackoverflow上搜索问题解决方案, 可能去MDN上面查看文档, 或者在docker hub上面搜索某个镜像。 通常情况下, 搜索过程是这样的:

    1. 在地址栏输入对应的域名, 进入该网站
    2. 鼠标一点输入框, 输入内容, 进行检索
    3. 检索结束

    然而由于某些原因, 访问国外的网站可能会很慢, 从 1 - 2 的过程可能需要你花好几秒去等待, 而鉴于信息检索的频繁性, 一天下来, 可能会浪费掉你不少时间, 而这段时间里, 你可能只是在盯着屏幕发呆。

    chrome可以添加搜索引擎, 自定义关键字, 当你在地址栏里面输入对应的关键字之后按 tab, 然后地址栏前面如果显示 使用某某搜索的时候, 就可以直接进行搜索了。 这样下来就减少了 1 - 2 的等待时间。具体操作如下:
    image

    image

    image

  • 插件

    • cVim
      习惯了使用键盘操作的你是不是只有在逛网站的时候还会感觉自己的双手依然被束缚? 毕竟网站内容多种多样, 而浏览器提供的快捷键又比较少, 那么使用cVim嘛, 类似于Vim, 你可以使用j,k滚动页面, 可以使用f然后配合热键来打开链接, 可以使用gu来跳转到上一级url, 可以使用I,b来从历史记录、书签里面进行搜索,我常用的就有这些 此外, 你还可以自定义热键等等等等。此外, 它的配置文件也可以同步到gist上面, 也就是说, 当你换电脑的时候, 只需要syncsave一下, 你的配置就能够同步了, 能够省下很多时间。
    • ublocker
      用于屏蔽广告, 感觉还不错。

善用工具

  • 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, 它真的很快。 不过他们的优点也是很明显的, 看官自行斟酌。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant