偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

5個(gè)有趣且能提高效率的超酷Unix操作

開發(fā)
在我的工作中,我總是在尋求能提高生產(chǎn)力,和讓開發(fā)更有趣的方法。當(dāng)你在bash上飛快輸入一系列的命令,你知道你的朋友會(huì)花兩倍的時(shí)間來做這一些列操作,沒有什么比這個(gè)讓人感覺更好的了。

在我的工作中,我總是在尋求能提高生產(chǎn)力,和讓開發(fā)更有趣的方法。當(dāng)你在bash上飛快輸入一系列的命令,你知道你的朋友會(huì)花兩倍的時(shí)間來做這一些列操作,沒有什么比這個(gè)讓人感覺更好的了。你是否曾經(jīng):

心里默默地埋怨你的同事,為了到命令行的頭部,不斷地按左方向鍵。但其實(shí)你可以只需要按下CTRL + A就能達(dá)到目的 ?

看到某人一次又一次輸入相同的命令,而你可以只需要在它面前加一個(gè)! ?
當(dāng)你的朋友羅列他使用的IDE的各種優(yōu)點(diǎn)的時(shí)候,你是否會(huì)翻白眼,因?yàn)槟阒滥憧梢允褂胿im完成同樣的功能?

如果是這樣的話,下面這些小提示就很適合你。

聲明:這篇文章不是對vim,git和其他終端的偏見。我無意挑起終端和IDE的戰(zhàn)爭,只是想告訴一些對我來說很有趣的招數(shù)。

git add -p

如果你已經(jīng)使用git很長一段時(shí)間了,你很可能遇到過原子提交這個(gè)概念了。本質(zhì)上,這個(gè)概念指一次提交只包含相關(guān)操作,不包含邏輯上不相關(guān)的事情。例如,你對一個(gè)類的改動(dòng)和相關(guān)的單元測試應(yīng)該在一個(gè)提交中,而對另一個(gè)不同類的操作你應(yīng)該放在另一個(gè)提交中。

但是,如果在一個(gè)文件中包含多個(gè)不相關(guān)操作的時(shí)候應(yīng)該怎么辦,或者你會(huì)想要把他們放在多個(gè)提交中,這樣你可以單獨(dú)對他們 進(jìn)行revert操作?或者你在一個(gè)文件中寫了很多l(xiāng)og日志的語句,但是你不希望將這些語句提交到項(xiàng)目中去怎么辦?通常人們使用的git命令是達(dá)不到這 個(gè)要求的:

  1. $ git diff 
  2. diff --git a/some-file.c b/some-file.c 
  3. index f383179..09e4e35 100644 
  4. --- a/some-file.c 
  5. +++ b/some-file.c 
  6. @@ -2,6 +2,8 @@ 
  7.   
  8.  int main(void) { 
  9.         printf("doing some stuff\n"); 
  10. -       printf("doing some more stuff\n"); 
  11. +       do_some_stuff(); 
  12. +       printf("doing some unrelated stuff\n"); 
  13. +       do_some_unrelated_stuff(); 
  14.         return 0; 
  15.  } 
  16. $ git add some-file.c 
  17. $ git commit 
  18. [master 1938906] some unrelated stuff, cramming it all in one commit 'cause I'm lazy 
  19.  1 file changed, 3 insertions(+), 1 deletion(-) 
  20. $ echo "Whoops we just committed unrelated stuff.  Not very modular of us." 

git add的 -p (代表patch)參數(shù)對于這種場景是非常有用的。這個(gè)會(huì)告訴git add,我想要做一個(gè)特殊的add操作,并且這個(gè)命令有個(gè)非常好的交互界面能讓我們明確指定我們想要操作文件中的哪個(gè)部分。git會(huì)將所有的變動(dòng)自動(dòng)分 塊,你可以使用y或者n來通過或者拒絕這個(gè)分塊,或者你也可以使用s將它切成更細(xì)粒度的塊。如果git不能自動(dòng)將變動(dòng)分成你希望的塊的話,你可以使用 e(edit)選項(xiàng)來指定更多細(xì)節(jié)。

 

這個(gè)帖子中有更多關(guān)于git add -p的細(xì)節(jié):How can I commit only part of a file in git (http://stackoverflow.com/questions/1085162/how-can-i-commit-only-part-of-a-file-in-git

補(bǔ)充說明:一些評論指出,-p參數(shù)也可以和其他的一些命令,比如git check –,在一起使用。因此你可以將文件的一部分恢復(fù)回來,而保持其他的部分的變化。很方便吧!

vim的 CTRL-P/CTRL-N 自動(dòng)完成的功能

這是vim的殺招之一,并且我發(fā)現(xiàn)很多人(即使是vim的大師)都不是很經(jīng)常使用。假如你是個(gè)馬虎的用戶(當(dāng)ssh進(jìn)入 一個(gè)空間的時(shí)候使用vim去編輯一些配置文件),這招會(huì)潛在幫到你很多的。很多人聲稱他們不能放棄IDE的特性原因就是IDE的智能提示這項(xiàng)功能,這個(gè)功 能能自動(dòng)完成變量和函數(shù)的名字。這些特性是非常受歡迎的,因?yàn)樗粫?huì)讓我們因?yàn)槠磳懚霈F(xiàn)錯(cuò)誤,也縮短了編譯/運(yùn)行/調(diào)試的周期。許多人沒有意識(shí)到直接從 vim的黑盒子中也有類似的功能,而且是不需要任何插件的。

在INSERT模式下,你可以按下CTRL-N鍵下移建議的自動(dòng)完成下拉框(這個(gè)下拉框vim是從當(dāng)前緩沖中獲取,如果 有的話,也會(huì)從tags中獲?。蛘甙聪翪TRL-P鍵來上移(如果記不住助記符的話,記著這兩個(gè)分別是代表“NEXT”和“PREVIOUS”)。如 果只有一個(gè)可能的自動(dòng)完成條目,vim就會(huì)繼續(xù)輸入,然后插入這個(gè)唯一的條目。非常方便且有效率,特別當(dāng)你的代碼中有大量的長變量/方法/常量名稱的時(shí) 候。

CTRL-P/CTRL-N可以和下個(gè)招數(shù)一起協(xié)同工作,具體使用和上面章節(jié)說的一樣

豐富的ctags

使用vim的人都知道打開一個(gè)遠(yuǎn)距離目錄中的文件是很麻煩的(可以使用:e 來減緩麻煩程度,但是仍然不能瞬間做到)。如果你正好是在一個(gè)team中工作,或者在一個(gè)大項(xiàng)目中工作,迅速完成這個(gè)事情對你的工作來說是至關(guān)重要的。

豐富的ctags(http://ctags.sourceforge.net/)會(huì)讓這個(gè)世界變得更好。使用ctags,你可以在頂級(jí)目錄下跑一個(gè)命令,生成一個(gè)”tags”文件,然后,你就可以使用Ctrl-] 來“跳到” 你鼠標(biāo)制定的定義(比如說,一個(gè)類名)。按CTRL-T回到你之前的位置。

你可以在git中搭建一個(gè)提交后鉤子(http://tbaggery.com/2011/08/08/effortless-ctags-with-git.html)當(dāng)你提交代碼之后會(huì)自動(dòng)生成ctags文件!漂亮。

在bash和zsh中CTRL-R

是否有曾經(jīng)在終端輸入過一個(gè)命令,然后當(dāng)你再次輸入前幾個(gè)字的時(shí)候,你會(huì)突然發(fā)現(xiàn),你希望有個(gè)更簡便的方法能自動(dòng)補(bǔ)充完 整個(gè)命令,以便你能編輯或者再次運(yùn)行它?如果是這種情況的話,那么,告訴你個(gè)好消息:你可以!只需要按下CTRL+R 然后輸入你想要查詢的東西。終端將會(huì)將你想要的填充進(jìn)去,如果有多個(gè)選擇的話,你可以按下反復(fù)按下CTRL+R來進(jìn)行選擇。當(dāng)你發(fā)現(xiàn)了你需要的命令,你可 以使用通常的操作來操作這個(gè)命令(如果你使用標(biāo)準(zhǔn)的bash鍵綁定的話,你可以使用CTRL+A,CTRL+E,方向鍵等。)。試試吧!如果你不記得你要 ssh的機(jī)器,使用這個(gè)方法你會(huì)感覺到很方便。

 

history| grep $COMMAND 對你來說也非常有用的,如果你只是想要查看最近運(yùn)行的命令的話。

vim 宏

許多時(shí)候,當(dāng)你寫代碼或者做相關(guān)任務(wù)的時(shí)候,即使可能只是非常微小的操作,你也會(huì)發(fā)現(xiàn)你自己非常需要一個(gè)方法來一遍一遍重復(fù)相同的編輯命令。不同的開發(fā)者會(huì)使用不同的方法來達(dá)到這個(gè)目的。例如,SubLime Text(http://www.sublimetext.com/)有個(gè)“殺招”是放多個(gè)光標(biāo)在不同的位置,然后統(tǒng)一編輯。在Vim(在emacs也一樣,但是我們這里只介紹vim的方法),你可以使用記錄和回放來完成這個(gè)目標(biāo)。這是個(gè)非常有用且方便的工具,它會(huì)根據(jù)你的操作量的大小在不同程度加速你的代碼寫作速度。

要制作一個(gè)宏,在normal模式下按下q,然后按下其他的按鍵來“命名”宏(通常我使用q)。vim將會(huì)開始記錄你的 鍵盤操作,vim將會(huì)記錄你的鍵盤操作,知道你按下了q來保存宏。你可以在normal模式下使用@-letter來重放,所以我通常使用@-q。你也可 以在@重放命令前加個(gè)數(shù)字,這樣,你可以一遍又一遍重復(fù)執(zhí)行你的宏(就像許多vim使用者,已經(jīng)非常習(xí)慣來這樣做了)。如果你非常習(xí)慣使用vim的花哨的 操作命令(例如,使用/搜索來定位),然后你只需要一些小小的聯(lián)系,你就可以很快地操作大量的宏了,你會(huì)將你的還在依靠鼠標(biāo)進(jìn)行操作的同事遠(yuǎn)遠(yuǎn)甩在后面 了。

更多關(guān)于vim 宏的操作,請查看:Vim Wiki(Macros)(http://vim.wikia.com/wiki/Macros

這是這篇文章的所有內(nèi)容了,希望你能喜歡這篇文章。

原文鏈接:http://nathanleclaire.com/blog/2013/10/27/5-cool-unix-hacks-for-fun-and-productivity/

譯文鏈接:http://blog.jobbole.com/51455/

責(zé)任編輯:陳四芳 來源: 伯樂在線
相關(guān)推薦

2013-11-18 10:36:39

Unix命令

2015-06-02 09:33:30

編程效率程序員

2015-05-22 14:01:50

編程提高效率

2025-01-15 17:00:00

開發(fā)Linux命令

2020-06-04 15:55:54

GitHub代碼開發(fā)者

2019-06-25 08:42:13

Linux命令指令

2023-10-23 15:02:53

JavaScript

2014-12-12 09:52:04

JavaScript

2021-11-12 16:54:07

云計(jì)算5G云應(yīng)用

2023-05-17 16:47:47

物聯(lián)網(wǎng)智能建筑

2010-04-13 15:14:31

Oracle優(yōu)化

2015-11-27 12:59:11

Android技巧提高效率

2018-09-30 14:46:38

Linux命令技巧

2015-09-06 16:05:57

綠色數(shù)據(jù)中心效率

2012-03-27 09:17:43

Visual Stud

2021-08-02 09:29:08

Vscode開發(fā)Web

2022-11-30 15:22:02

DevOps軟件開發(fā)運(yùn)維

2010-09-09 16:51:50

2020-01-21 19:39:31

數(shù)據(jù)中心服務(wù)器工具

2023-01-10 11:18:29

DevOps
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)