Fishshell 助力前端開發

什麼是 Fish shell ?

不少作前端開發的朋友都很鍾愛使用Mac電腦,同大多數Linux系統同樣Mac自帶的命令行是Bash提供的,是一種很基本的Shell。今天咱們來了解一款高級的shell工具 -- Fish shellhtml

和Bash相同,Fish shell 也是一種能夠在Mac和Linux等系統使用的Shell。前端

和Bash不一樣,Fish shell 具備很好的易用性,可配置性等特色。git

配置好Fish shell以後,不少的鼠標和觸控板的操做,均可以在命令終端中完成了。真正作到彈指如飛,揮灑自如。shell

Fish shell 有哪些優勢 ?

  • 開箱即用npm

    你們能夠從 Fish shell 官網 直接下載安裝包,或者經過homebrew安裝。安裝好以後無需配置,就能夠直接使用,暢享其諸多好處了。bash

    brew install fish //homebrew安裝fishshell的命令
    複製代碼
  • 自動提示app

    • Fish shell 有很好的命令提示功能。 下圖爲合法命令能夠自動提示補全, 函數

      合法命令能夠自動提示補全
      下圖爲非法命令會展現爲紅色。
      非法命令會展現爲紅色

    • Fish shell 的命令歷史記錄也很強大。 使用過的命令,當再次輸入的時候,能夠自動提示補全上次使用的參數。 工具

      命令歷史記錄

  • 圖形化的配置頁面ui

    運行 fish_config 命令,就能夠喚起 fish 的配置頁面。以下圖:

    fish_config

    我最經常使用的前三個標籤頁:其中color頁用於配置顏色主題;prompt頁用於配置命令行的前綴;function頁展現已經配置的函數列表,這也是我認爲fish shell最強大的地方。

強大的函數

Fish shell 的函數十分強大,幾乎能夠知足你的全部需求。

Fish shell 的函數本質上是一個可執行腳本。容許你經過命令行輸入函數名來執行腳本中的命令。聽起來很像其餘shell中的alias, 但它遠比alias功能豐富。

函數的建立方法十分簡單,只需進入 Fish shell 的配置目錄(~/.config/fish/)並建立config.fish文件。直接在其中編寫function就能夠了。在命令行直接輸入函數名可調用函數。

函數語法能夠參考阮一峯老師關於 Fish shell 的博文

分享一個我寫的一個很簡單的函數。

function push
    echo "+++++git pull ++++++++++++++"
    git pull
    echo "+++++git add .++++++++++++++"
    git add .
    echo "+++++git commit ++++++++++++"
    if test -d $argv
        git commit -m (date +%Y-%m-%d_%H:%M:%S)
    else
        git commit -m $argv
    end
    echo "+++++git push +++++++++++++++"
    git push
    echo "++++++Finish+++++++++++++++++"
end
複製代碼

push函數的功能是用一個push 命令完成向git上提交代碼的一連串操做。值得注意的是,能夠在push能夠接收一個參數,做爲commit時候的註釋。若是不提供參數,則默認將當前時間做爲commit的註釋。調用方法以下:

# 添加參數,參數中不能有空格
$ push your_first_commit 
# 不添加參數,以當前時間爲commit註釋
$ push
複製代碼

最後,下面貼出個人config.fish文件, 以供參考。其中定義了用的比較順手的幾個函數,以及更改了環境變量的設置。

# 快速進入經常使用工做目錄
function cdp
	cd /Users/gavin/Documents/project
end

# 快速提交代碼,使用方法:
# 能夠添加一個參數做爲 git commit 的註釋
# 若是不添加參數會將當前時間做爲 git commit 的註釋
function push
	echo "+++++git pull ++++++++++++++"
	git pull
	echo "+++++git add .++++++++++++++"
	git add .
	echo "+++++git commit ++++++++++++"
	if test -d $argv
		git commit -m (date +%Y-%m-%d_%H:%M:%S)
	else
		git commit -m $argv
	end
	echo "+++++git push +++++++++++++++"
	git push
	echo "++++++Finish+++++++++++++++++"
end

# 給 npm start 作的別名
function ss
	npm start
end

# 給 npm install 作的別名
function sd
	npm install
end

# 用 Vscode 打開當前目錄
function oc
	open . -a /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron
end

# 用 sublime text 打開當前目錄
function os
	open . -a /Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text
end

# 在Finder中打開當前目錄
function oo
	open .
end

# 添加環境變量
set PATH /Users/gavin/tools/flutter/bin $PATH
複製代碼

感謝您的時間,也歡迎你們的建議和意見,謝謝~

相關文章
相關標籤/搜索