Archive

Archive for June, 2017

如何优雅的使用 Vim

June 20th, 2017 2 comments

根据 Bram 前后几个关于高效使用 Vim的视频,大家每天需要花很多时间来编辑:代码、文档、邮件、日志 等等,除去这些外,还要分时间参加会议和人沟通,每个人的时间却都是不够的,优雅使用 Vim 无外乎:

  • 检测不高效的地方:你的整个工作流里,什么地方比较浪费时间?
  • 寻找一个更快的方式:官方文档,学习他人经验,自己编写 VimScript
  • 使它习惯化:开始使用,并且不断完善

以上三点反复循环,能让你的 Vim 越来越顺手。所以重点是根据自己的工作流不断迭代。而不是象大部分教程那样教你安装一大堆插件。插件都是别人写的为了解决通用需求而提炼的东西,和每个人的具体需求都有差别。上面这三点我屡试不爽,随着时间增长,有种越来越顺手的感觉,举几个我具体碰到的例子:

问题1:边开发边参考网上解决方案的问题

比如碰到问题搜到一段代码,需要试一下,一会又看会 Chrome ,一会又切回 GVim 里去写代码,反复 ALT_TAB,有时候中间使用了一下资源管理器或者其他程序,ALT_TAB 的顺序就会被打乱,你一切换就切跑了,十分低效。

于是我用 VimScript + 内嵌 Python 写了一个功能,按快捷键可以让 GVim 在透明/不透明两种状态间自由切换:

就是 VimScript 简单封装一个函数,里面用内嵌 Python 找到 GVim 的顶层 HWND,并设置透明度。平时默认不透明,需要参考其他资料时切换成透明,参考完了又快捷键切换回来,感觉比缘来切来切去顺畅很多。

问题2:浏览文档时的窗口滚动问题

比如你在抄写或者改写一段代码,窗口分为左右两个,左边是你引用参考的源代码,右边是你正在编辑的源代码。你抄着抄着,抄到左边最后一行了,或者你想前后看看正在引用的文本,你就需要将焦点从右边切换到左边,滚动,再切换交点回来,十分麻烦,于是撸一小段 VimScript 来解决这个问题:

" 0:up, 1:down, 2:pgup, 3:pgdown, 4:top, 5:bottom
function! Tools_PreviousCursor(mode)
    if winnr('$') <= 1
        return
    endif
    noautocmd silent! wincmd p
    if a:mode == 0
        exec "normal! \<c-y>"
    elseif a:mode == 1
        exec "normal! \<c-e>"
    elseif a:mode == 2
        exec "normal! ".winheight('.')."\<c-y>"
    elseif a:mode == 3
        exec "normal! ".winheight('.')."\<c-e>"
    elseif a:mode == 4
        normal! gg
    elseif a:mode == 5
        normal! G
    elseif a:mode == 6
        exec "normal! \<c-u>"
    elseif a:mode == 7
        exec "normal! \<c-d>"
    elseif a:mode == 8
        exec "normal! k"
    elseif a:mode == 9
        exec "normal! j"
    endif
    noautocmd silent! wincmd p
endfunc

把这个函数绑定到 ALT_U, ALT_D 两个按键上,你正在编辑着当前文档时,不用退出 INSERT 模式,更不用切换窗口交点,直接 ALT_U, ALT_D,就可以上下滚动正在参考的文档内容了,有了这个改进后,我的工作又高效了那么一点点。

同理,Quickfix 窗口经常用来查看编译错误,或者 Grep 结果,我也写了一个专门针对 Quickfix 窗口的滚屏函数,不用切焦点随时浏览 Quickfix 内容。

Read more…

Categories: 随笔 Tags:

技术岗转管理岗面临哪些问题?

June 5th, 2017 No comments

这是之前我写的一篇知乎回答,先后获得知乎圆桌精选,日报收录和编辑推荐,起因是有人再问:

实在是对管理团队提不起兴趣,也不愿意离开现在的职位,但不这么做一方面会被后来的年轻人赶上,另一方面薪酬也提不起来。看了一些这方面的书,觉得没什么收获。

我的答案其实就是根据自己十多年管理工作的一些经历和思考,总结的技术管理者容易碰到的几大误区:

误区1:不要对立 【管理岗】和【技术岗】

有人是转了【管理岗】就把技术丢掉,觉得终于可以摆脱码农身份,希望做纯粹的管理,进而今后向中层,高层发展。须知到处都不缺纯粹的管理人员,技术丢掉了,哪天项目变动,不一定就需要你去做管理了,退回技术岗很不适应,恐怕就只有离职的分了;纯粹的管理人员需求量并不是那么高,一般都喜欢内部提拔信任的人,哪天你换个工作了,新公司看你初来咋到,人家凭啥信任你?顶多也只能给你个骨干或者副手的机会,以观后效。见过不少转纯粹管理的,除了一直高升的极少数几个外,大部分一旦项目变动或者换工作,基本就挂了。

还有人喜欢纯粹技术,有机会转管理岗的时候不去争取,觉得只有纯粹技术岗才能将技术做好。其实大可不必这么顾虑,管理岗的非技术事情是比较多,但工作分配相对自由,管理之余你可以静心研究一些对项目比较有用的核心问题。

我见过优秀的技术管理人员,本身技术能力很强,管理能力照样很强,某同事本身在原有行业管理近 400人的研发团队,切换行业后,从基层程序员做起,并没有谋求在新公司一定就要做管理岗,凭着扎实的基础,很主动卖力的在新岗位上工作,很快成为骨干,对整个项目做出了突出贡献,开始逐步分担一些招聘和带人性质的工作,凭借先前出众的管理能力,很快被重视起来,机会一来,立马得到提拔。

能力是你自己的,职位和机会是别人给的,你真有能力,谁也很难埋没你;你德不配位,即是机缘凑巧走上了管理岗,有点变动你也就废了。真正牛逼的人,放在哪里都能闪光,没人埋没得了你。

误区2:主次颠倒:

技术管理的终极目标是【搞定问题】,把你找来是要让你搞定一个个项目的,不是吃干饭的。管理本身的目的就是在有限的资源下达到既定目标。时间、人力都是有限的,如果资源无限那要你何用呢?即,大家搞不定了,时间紧了,需要你上的时候,你得二话不说顶上去,别想当什么甩手展柜,你又不是老板,你是管理者,没有哪里需要甩手掌柜,以为【分配别人工作】就得了;硬件一分钟买不回来,没有条件,短缺这样短缺那样,你得想办法解决;另一方面,该拼命时你得下得了决心鼓励团队向前冲,比如加班。

三观正的管理者,立场肯定要站在公司一边,该对大家有所要求的时候就要能对大家有所要求,谁都想做老好人,这个说多了,可能有些人又不爱听了,问题是你管理者不是基层员工。你只有对自己和团队严格一点把一个个问题搞定了,大家的收入才能往上提升,职业才能有所发展,这才是真正的对大家好;平时大家一团和气,每个人都过的舒服自在,如果最终问题搞不定,大家收入和职位上不去,那你是在害大家。

误区3:不能严格要求

团队的战斗力从哪里来的?严格的要求,统一目标。太抽象?我解释一下:

Read more…

Categories: 大浪淘沙 Tags: ,
Wordpress Social Share Plugin powered by Ultimatelysocial