成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

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

看到某人一次又一次輸入相同的命令,而你可以只需要在它面前加一個! ?
當你的朋友羅列他使用的IDE的各種優點的時候,你是否會翻白眼,因為你知道你可以使用vim完成同樣的功能?

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

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

git add -p

如果你已經使用git很長一段時間了,你很可能遇到過原子提交這個概念了。本質上,這個概念指一次提交只包含相關操作,不包含邏輯上不相關的事情。例如,你對一個類的改動和相關的單元測試應該在一個提交中,而對另一個不同類的操作你應該放在另一個提交中。

但是,如果在一個文件中包含多個不相關操作的時候應該怎么辦,或者你會想要把他們放在多個提交中,這樣你可以單獨對他們 進行revert操作?或者你在一個文件中寫了很多log日志的語句,但是你不希望將這些語句提交到項目中去怎么辦?通常人們使用的git命令是達不到這 個要求的:

  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)參數對于這種場景是非常有用的。這個會告訴git add,我想要做一個特殊的add操作,并且這個命令有個非常好的交互界面能讓我們明確指定我們想要操作文件中的哪個部分。git會將所有的變動自動分 塊,你可以使用y或者n來通過或者拒絕這個分塊,或者你也可以使用s將它切成更細粒度的塊。如果git不能自動將變動分成你希望的塊的話,你可以使用 e(edit)選項來指定更多細節。

 

這個帖子中有更多關于git add -p的細節: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

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

vim的 CTRL-P/CTRL-N 自動完成的功能

這是vim的殺招之一,并且我發現很多人(即使是vim的大師)都不是很經常使用。假如你是個馬虎的用戶(當ssh進入 一個空間的時候使用vim去編輯一些配置文件),這招會潛在幫到你很多的。很多人聲稱他們不能放棄IDE的特性原因就是IDE的智能提示這項功能,這個功 能能自動完成變量和函數的名字。這些特性是非常受歡迎的,因為它不會讓我們因為拼寫而出現錯誤,也縮短了編譯/運行/調試的周期。許多人沒有意識到直接從 vim的黑盒子中也有類似的功能,而且是不需要任何插件的。

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

CTRL-P/CTRL-N可以和下個招數一起協同工作,具體使用和上面章節說的一樣

豐富的ctags

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

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

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

在bash和zsh中CTRL-R

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

 

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

vim 宏

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

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

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

這是這篇文章的所有內容了,希望你能喜歡這篇文章。

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

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

責任編輯:陳四芳 來源: 伯樂在線
相關推薦

2013-11-18 10:36:39

Unix命令

2015-06-02 09:33:30

編程效率程序員

2015-05-22 14:01:50

編程提高效率

2020-06-04 15:55:54

GitHub代碼開發者

2025-01-15 17:00:00

開發Linux命令

2023-10-23 15:02:53

JavaScript

2019-06-25 08:42:13

Linux命令指令

2014-12-12 09:52:04

JavaScript

2021-11-12 16:54:07

云計算5G云應用

2023-05-17 16:47:47

物聯網智能建筑

2010-04-13 15:14:31

Oracle優化

2018-09-30 14:46:38

Linux命令技巧

2015-11-27 12:59:11

Android技巧提高效率

2015-09-06 16:05:57

綠色數據中心效率

2012-03-27 09:17:43

Visual Stud

2021-08-02 09:29:08

Vscode開發Web

2022-11-30 15:22:02

DevOps軟件開發運維

2010-09-09 16:51:50

2020-01-21 19:39:31

數據中心服務器工具

2023-01-10 11:18:29

DevOps
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美中文在线 | 黄色在线免费观看 | 成人一区精品 | 久久小视频 | 午夜免费网站 | 高清国产一区二区 | 啪一啪 | 欧美天堂在线 | 国产日韩欧美一区二区在线播放 | 亚洲小视频在线播放 | 精精国产xxxx视频在线野外 | 狠狠操你| 中文字字幕一区二区三区四区五区 | 91视在线国内在线播放酒店 | 毛片网络| 国产精品永久免费视频 | 日韩欧美在线观看 | 欧美一级片免费看 | 91视频一区二区三区 | 九九九久久国产免费 | 在线精品亚洲欧美日韩国产 | 精品国产一区二区三区免费 | 羞羞视频网站免费观看 | 国产一区二区精品在线观看 | 国产精品18久久久 | 久久小视频 | 国产一区二区在线播放 | 国产99视频精品免视看9 | 性国产丰满麻豆videosex | 黄色电影在线免费观看 | 最新中文字幕在线 | 久草网址 | 日韩精品1区2区3区 爱爱综合网 | 另类专区成人 | 久久成人激情 | 操操网站 | 日韩欧美操 | 欧美区日韩区 | 国产精品视频一区二区三区 | 一本岛道一二三不卡区 | 国产激情视频网址 |