提升工作效率几个小技巧

0.前言

毕业工作至今已经9个月了,很快就一年了。近一个月从小米跳槽来到了字节跳动,配了心心念念的顶配版MacBook Pro,经过一个多月的折腾,总结了一些提升工作效率的小技巧。(Ps:适用于Mac系统及部分Linux系统)

1.Git

作为程序员,git是日常与团队协作最好的工具了,没有之一。git命令在使用过程中,发现有些过长,这里列举一些“偷懒”的小方法。
首先在终端中,编辑一个名为.gitconfig的文件,位置于用户根目录下,即~。

vim ~/.gitconfig

vim是一个文本编辑器,掌握了其快捷键,可以飞快coding,几乎可以手不离开键盘。
输入上述命令后,在该文件中填入下列内容

[alias]
    co = checkout
    ci = commit
    st = status
    pl = pull
    ps = push
    dt = difftool
    cp = cherry-pick
    br = branch

这是相当于给git的一些常用命令配了一个别名,如git checkout xxxbranch可以用git co xxxbranch表示,以此类推。此小技巧适用于Mac及Linux。

2.brew

brew相当于Linux系统中的apt-get或yum。brew官网点击这里

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

在终端中运行如上命令,即可安装brew命令。可是在brew命令执行时,默认会有烦人的brew update提示,会浪费一些时间,这时可以在zsh的配置中添加如下配置即可。

export HOMEBREW_NO_AUTO_UPDATE=true

安装过后,你就可以愉快的在命令行用brew安装想要的软件包了。

除此,你还可以安装一个cask命令,这样就可以通过brew cask命令安装一些带有图形界面或者说是已经编译好了的应用包(.dmg/.pkg),仅仅是下载解压,放在同一的目录中(/opt/homebrew-cask/Caskroom),省去了自己去下载、解压、拖拽(安装)等等一系列蛋疼的步骤,同样,卸载相当容易与干净。这个对一般用户来说会比较方便,包含很多在App Store里没有的常用软件。

home cask命令通过如下命令安装:

brew tap homebrew/cask-versions

3.终端神器iTerm2

要说mac上最好用的终端是什么,不是mac自带的终端,而是iTerm2。安装了上述brew cask命令后,即可使用下述命令安装,或者到iTerm2官网下载安装。

brew cask install iterm2

然后在iTerm2中是无法使用Option键在单词间跳转的,需要手动做一些设置,如下图:

添加如下两个配置即可。

3.1 选择文本

iTerm2 中选择文本有三种方式,分别是:

  1. 双击:选中单词
  2. 三击:选中整行
  3. 四击:智能选择

智能选择是一个比较有意思的功能,完整的介绍可以参考官方文档。对于我来说,以下几种情况下用智能选择是非常棒的:

  1. 代码片段,比如智能选择会自动选中 namespace::identifier以及 foo.bar.baz 这种语法
  2. 双引号内的字符,比如 "this is a quoted string"
  3. 电子邮件,智能选择会选中整个邮件地址
  4. 完整的 URL,智能选择会选中 scheme

另外,iTerm2 默认选中即复制,所以不用额外的 Command + C 这一步了。

3.2 Command键

Command 主要用来打开文件或者 URL。对于输出到终端的文件名或者 URL,我们可以按住 Command 键点击它,就可以直接打开了。

此外,按下 Command + Option 还可以选中矩形范围内的文本。

3.3 代码补全

按下Command + ;可以打开代码补全功能.



通过这个功能,你可以快速输入最近输入的命令

3.4 丰富的主题功能

iTerm2支持主题功能,可以通过设置设置自己喜欢的配色,给自己一个愉悦的开发环境。


这里推荐自用的主题,你也可以前往https://github.com/mbadolato/iTerm2-Color-Schemes下载主题,然后Import到iTerm2中选择使用。

关于iTerm2的技巧还有很多很多,这里没办法完全展现,可以自行查阅资料。

4.zsh & oh-my-zsh

不知道什么时候开始,mac os已经全线将zsh替代bash作为默认终端了。在小米时,用的是Ubuntu系统,里面预装的终端是bash,后面装了zsh后感觉真香,这里墙裂推荐。zsh安装可自行百度查询。

安装方法有两种,可以使用curl或wget,看自己环境或喜好:

# curl 安装方式

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"


# wget 安装方式

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

关于oh-my-zsh的折腾,可以看这篇文章,这里不再赘述。iTerm2 + Oh My Zsh 打造舒适终端体验

5.alias别名

又到了教偷懒的时刻了。安装完上述组件,就可以解锁一些偷懒方法。首先zsh的配置文件是~/.zshrc,使用vim打开后,在最下面输入如下:

alias zshconfig="vim ~/.zshrc"
alias reload="source ~/.zshrc"

推出后,使用soure ~/.zshrc命令使其生效。然后,你就可以使用zshconfigreload这两个命令了,前者是编辑zsh配置,后者是使其生效。看懂了吗,alias其实就是给某个命令其一个别名,通过这个别名去执行对应的命令。

这里列举几个个人使用的命令

alias cura="adb shell dumpsys window | grep mCurrentFocus" 
// 快速查看手机当前是哪个Activity

alias vimconfig="vim ~/.vimrc" 
// 编辑vim配置

alias cpg="adb shell am startservice ca.zgrs.clipper/.ClipboardService && adb shell am broadcast -a clipper.get" 
// 获取手机剪切板内容,需要配合clipper使用,后续介绍

alias cps="adb shell am startservice ca.zgrs.clipper/.ClipboardService && adb shell am broadcast -a clipper.set -e text" 
// 设置手机剪切板内容

alias prog="sh /Users/bytedance/Library/Android/sdk/tools/proguard/bin/proguardgui.sh" 
// 打开解混淆工具

如果存在同名的别名、函数、内置命令等,调用优先级是:

别名 > 单数 > 内置命令 > $PATH 路径下的可执行文件。

一般我们只用 alias 来简化固定的长命令,由于别名不支持参数,所以复杂的处理流程建议通过定义函数来解决。

6.编辑器之神:Vim

之前听说有人用vim写代码,我是不信的,当我第一次打开vim的时候,啊这是什么玩意啊,输入字符都输入不了,退出呢,撤销呢,可谓是一脸懵逼。但我去到小米后,看到ld在vim界面飞快的输入、复制、剪切,我信了,学习了一番其用法后,嗯~又是一次真香。

Vim 分为三种模式:

  • 输入模式:这就很普通的编辑器一样,光标在某个位置上闪烁,表示我们可以输入内容了。
  • 普通模式:在输入模式下按下 Esc键可以退出输入模式,进入到普通模式。
  • 命令模式:执行搜索、替换等命令或调用插件。

接下来是一些键位:

  • 方向键

上:k , 下:j , 左: h , 右:l

  • 词组正向跳转(以空格和符号作为分割)-- 小写的w

例如:“hello world,I'm wrting”,当光标在h时,连按w光标依次显示为:w > , > I > ' > m > w > "

  • 词组正向跳转(以空格为分割) -- 大写的W

例如:“hello world,I'm wrting”,当光标在h时,连按大写的W光标依次显示为:w > I > w

  • 词组反向跳转-- 小写的b和大写的B

情况与w类似。

  • 正向跳转到指定字符-- 小写的f

例如:“hello world,I'm wrting”,当光标在h时,输入fw,光标跳转到字符world的w字符处。

  • 反向跳转到指定字符-- 大写的F

例如:“hello world,I'm wrting”,当光标在d时,输入Fw,光标跳转到字符world的w字符处。

  • 正向跳转到指定字符的上一个位置(空格也算)-- 小写的t

例如:“hello world,I'm wrting”,当光标在h时,输入td,光标跳转到字符world的l字符处。

  • 反向跳转到指定字符的下一个位置(空格也算)-- 大写的T

例如:“hello world,I'm wrting”,当光标在d时,输入Tw,光标跳转到字符world的o字符处。

  • 复制当前行-- yy

  • 粘贴-- p

粘贴至光标的下一行,例如:“hello world,I'm wrting”,当光标在此行时,输入yyp,当前行复制并粘贴,下面又多出一行。

  • 10p

粘贴10次

  • 跳转至下一个与当前光标相同字符的位置(可以跨行跳转)-- *

例如:“hello world,I'm wrting”,当光标在hello的最后一个l字符处,输入 * ,跳转到world的l字符处。

  • 跳转至上一个与当前光标相同字符的位置(可以跨行跳转)-- #

情况如上。

  • 选中(再通过上下左右进行区域选中)-- v

例如:当光标在第一行hello的h字符处,输入vjj


  • 删除当前行-- dd

  • 5dd

删除当前行在内以下的5行。

  • 删除选中区域-- d

例如上面的例子中,可以输入vjjd进行区域删除。

  • 撤销 -- u

  • 正向按字符单位进行删除-- x

从光标所在位置处逐个正向删除

  • 反向从光标上一个位置处进行删除-- 大写的X

  • 从光标处删除至指定字符-- df指定字符

例如:“hello world,I'm wrting”,当光标在h时,输入dfw,结果为“orld,I'm wrting”。

  • 删除引号内的内容-- di"

例如:“hello world,I'm wrting”,当光标在此行时,输入di",结果为“”。

  • 删除包含引号在内的内容-- da"

  • 跳转至文件头-- gg

  • 跳转至文件尾-- G

  • 跳转至指定行的开头-- 行号G

搜索

  • 普通模式下输入--/要搜索的内容\c
  • 使用n跳下一位置,N跳上一位置

熟练了之后,连Android Studio和IDEA中我都安装了ideaVim插件,编辑代码时使用vim进行编辑,速度飞快,手指基本不用离开键盘,同事看了都直呼内行~(开个玩笑)

7.Alfred

Alfred 绝对是让 Mac 更加好用的神器之一,如果 Mac 上只能安装一款三方软件,那绝对是 Alfred。我把 Alfred 拔高到如此地位绝非是为了捧杀它,而是确实实至名归,本文主要会介绍 Alfred 原生的用法。

除了 Alfred 软件自带的功能外,它还允许用户自己开发 workflow 并分享出来,正是这些 workflow,彻底奠定了 Alfred 的神器地位。(Ps:Alfred在4.0后很多功能需要会员,可以搜索下载pj版)

Alfred简介

打开程序,首页中可以编辑 Alfred 的启动快捷键,这里我把它设置为 双击 Command 键,最好用的 App 当让要配备最好按的快捷键。


文件/程序搜索

文件搜索是 Alfred 最基础的功能,类似于系统的 Spotlight,直接双击 Command 打开 Alfred 的窗口,然后输入文件名即可。


计算器

双击Command后,字节在输入框中输入计算式,即可直接获得结果。


剪切板历史

考虑下面几种场景,你的做法是什么?

  • 不知道现在剪贴板中的内容是什么,需要先粘贴出来,如果不满意再删除?
  • 想要拿到上上次复制的内容,但是剪贴板里面已经被覆盖了
  • 上周复制过一段话,依稀只记得某些关键字,想要再把内容找出来

有了 Alfred 的剪贴板增强,以上场景都不是问题,首先要在 Features -> Clipboard 中打开剪贴板历史:

我把剪切板历史的时间设置为了3个月,同时把打开剪贴板的快捷键设置为 Command + Shift + C,按下快捷键我们会看到:

点击或按条目后面的快捷键即可直接输入剪切板中的内容。

关于Alfred的用法还有好多好多,例如文本片段snippets,可以将一些常用的文本存下来,输入过程输入关键字便自动输入,还有workflow,这里推荐一下有道翻译的workflow,对于我这种英语渣异常好用。https://github.com/wensonsmith/YoudaoTranslate

8.clipper

https://github.com/majido/clipper
在github页面中下载apk,安装至手机中,即可通过adb命令获取或设置手机的剪切板,如使用了上述的别名,命令如下:

# 获取剪切板
cpg

# 设置剪切板内容为"abc"
cps "abc"

效果如下:


9.彩蛋 & 结束语

brew install sl
alias sl="ls"
ls
brew install archey
echo "archey" >> ~/.zshrc
source ~/.zshrc

至此,第一阶段的“提升工作效率小技巧”总结结束,由于时间问题,不能面面俱到及万无一失,后续会不断补充,enjoy yourself and enjoy life~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容