Huli's Blog

Learning by sharing

Lidemy 鋰學院是一個為初學者而生的線上程式課程平台,希望能以淺顯易懂的教學,帶領初學者更快速地入門程式設計。你可以直接到網站註冊,或者是追蹤 Lidemy 的粉絲專頁,就能搶先得知課程的最新消息

iTerm2 + fish 與 command line快捷鍵

| Comments

iTerm2有一段時間了,雖然我還不是很會用,但光是介面比原本的好看就值得換掉
最近開始用一套之前看很久的commnad line shell,名字很可愛,叫做fish

於是就把原生的shell換成fish
基本上是參考這一篇

  1. sudo nano /etc/shells
  2. add /usr/local/bin/fish to your list of shells
  3. chsh -s /usr/local/bin/fish

這樣你的預設shell就變成fish,無論是開內建的終端機或是iTerm2都會直接看到fish
但用了以後碰到的第一個問題是環境變數,有些你之前寫在~/.bash_profile寫好的設定都失效
上網找解法看到這篇:re-use '~/.profile` for Fish?

先建立一個檔案叫做~/.config/fish/config.fish
再把它提供的這段code

egrep "^export " ~/.profile | while read e
    set var (echo $e | sed -E "s/^export ([A-Z_]+)=(.*)\$/\1/")
    set value (echo $e | sed -E "s/^export ([A-Z_]+)=(.*)\$/\2/")
    
    # remove surrounding quotes if existing
    set value (echo $value | sed -E "s/^\"(.*)\"\$/\1/")

    if test $var = "PATH"
        # replace ":" by spaces. this is how PATH looks for Fish
        set value (echo $value | sed -E "s/:/ /g")
    
        # use eval because we need to expand the value
        eval set -xg $var $value

        continue
    end

    # evaluate variables. we can use eval because we most likely just used "$var"
    set value (eval echo $value)

    #echo "set -xg '$var' '$value' (via '$e')"
    set -xg $var $value
end

複製貼上,儲存,重開一下command line
應該就會把之前的設定移到這裡來了,真是輕鬆方便

接著是介紹一些command line在使用時的快捷鍵
Shortcuts to Move Faster in Bash Command Line
這超重要,因為很多時候我可能指令打錯一個字,像是 giy commit -am "hello world"
我以前都用鍵盤按左然後一直按直到把y改成t

但是上面那篇介紹一堆方便的快捷鍵,從此以後不必再那麼累
在這邊筆記一下我會用到的
Ctrl+A 移到開頭
Ctrl+E 移到結尾
Alt+左或右 移動一個字(這超方便)
Ctrl+W 刪除直到碰到空白,例如說你現在是git commit -am "edit",游標在最尾端
按一次就可以把"edit"刪掉,再按一次刪掉-am,很實用
Ctrl+K 把游標之後的都剪下,你可以用Ctrl+A然後Ctrl+K,剪下這整行指令

我覺得記這五個就超級夠用了

Comments

comments powered by Disqus