極刊? Tcl 工作環境搭建 Zsh Tmux Vim 三劍客

極刊? Tcl 工作環境搭建 Zsh Tmux Vim 三劍客

來自專欄 IC CAD探索

Steve 陪你讀 IC

  • 用我的文字幫你把書讀薄
  • 用我的經驗幫你把書讀厚

往期鏈接

  1. Tcl/Tk From Novice to Expert
  2. 語言選擇之路 & Tcl 在工作中的佔比

看完本文

我不是在講怎麼裝 Tcl,而是講 Zsh Tmux 和 Vim 構建的 Linux Tcl 工作環境,哪些基礎的好插件可用。

  • Zsh 是一個很好地工具,支持很多特性,但是公司一般有統一的 Shell 管理,Zsh 自用是很好的。
  • Tmux 的出項取代了我是用 Screen,它強大到可以做很多自動化工作,還可以不同的 terminal 之間進行交互。
  • Vim 只是我第一個用的編輯器,這個東西你第一次用了什麼(Vim 或者 Emacs)估計就會一直用。

Ubuntu in Win10

我的環境是基於 Win10 Ubuntu 的,GUI 方案使用 Ximg。

Tcl 是 Ubuntu 自帶的,如果是 Windows,可以安裝 windows 上的發行版。

一般都是裝 ActiveState 的發行版,包含了大多數的庫和擴展。

查看安裝要求和設置準備

並不是所有 Win10 都能裝 Linux Subsystem 的,訪問 Windows Store 就會幫你自動檢測你是不是符合安裝要求。

Win 系統版本必須是 14393 以上,系統類型必須是 64 位操作系統。

docs.microsoft.com/en-u

這是 Microsoft Store 里檢測的系統要求。

安裝 Ubuntu

進入商店搜 Ubuntu 或者 Linux 直接安裝。

安裝 Xmimg

straightrunning.com/Xmi

對於 Linux 的圖形來說,需要一個 Display 來作為 GUI 的顯示。

安裝 Xmimg 並啟動。

在 Ubuntu 中設置 DISPLAY 環境變數為 ":0.0"。

安裝 Zsh Tmux Vim 和相關插件

現在的工具或者流程很少不支持插件的,很多工具本身就是個插件管理器,功能都是靠插件搭起來的。所以我的 Tcl 專題不是只講 Tcl,在之後某一起會專門講講一般插件架構的設計思路以及我在 Tcl 里怎麼設計插件的。

這個系列還會放出一些插件的講解,我覺得好的插件應該去充分使用,有些還可以細細研究。

Zsh

我最開始認識 Zsh 是在 Linuxtoy,這個博客一直有更新,最近更新頻率變緩了。

linuxtoy.org/archives/z

註:公眾號無法加外鏈,大家可以 48 小時後查看小程序中有鏈接的版本。

更快方法是轉發本文並截圖發送至公眾號,我們會按順序發出文中提到的腳本源文件和鏈接等資源。

學習推薦:

  • Learning Shell Scripting with Zsh
  • goodreads.com/book/show

# install zshsudo apt-get install zshchsh -s /bin/zsh# install oh-my-zshsudo apt-get install gitsh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"# install zplugcurl -sL --proto-redir -all,https https://raw.githubusercontent.com/zplug/installer/master/installer.zsh | zsh# install zsh pluginsudo apt-get install autojumpecho ". /usr/share/autojump/autojump.sh" >> ~/.zshrc# install zsh-syntax-highlightingmkdir -p ~/.dotfiles/shellcd ~/.dotfiles/shell/git clone https://github.com/zsh-users/zsh-syntax-highlighting.git echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc# Set theme# open ~/.zshrc# find ZSH_THEME# Change the theme

zsh plug-in 可以直接使用 zplug 安裝,將 zplug 配置寫入 zshrc。

zplug "zsh-users/zsh-completions"zplug "zsh-users/zsh-syntax-highlighting", defer:2, from:githubzplug "wting/autojump", from:"github", as:command

Tmux

Tmux 一開始是同事推薦的,然後也是看到 Linuxtoy 上有介紹,進而想去了解更多,慢慢覺得這個太給力。

學習推薦

  • Tmux 2: Productive Mouse-Free Development
  • goodreads.com/book/show

sudo apt-get updatesudo apt-get install tmuxtmux -Vgit clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

配置 TPM (Tmux-Plugin-Management)需要把下面一段放入~/.tmux.conf。

# List of pluginsset -g @plugin tmux-plugins/tpmset -g @plugin tmux-plugins/tmux-sensible# Other examples:# set -g @plugin github_username/plugin_name# set -g @plugin git@github.com/user/plugin# set -g @plugin git@bitbucket.com/user/plugin# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)run ~/.tmux/plugins/tpm/tpm

github.com/tmux-plugins

配置完 TPM, 你可以把下列插件列表加入 zshrc 文件。

set -g @plugin tmux-plugins/tpmset -g @plugin tmux-plugins/tmux-sensibleset -g @plugin jimeh/tmux-themepack;set -g @plugin tmux-plugins/tmux-resurrect

使用場景介紹

  1. 多個 terminals 一個窗口管理
  2. 一個 terminal 多個 panels
  3. resurrect 可保存當前的窗口布局和目錄
  4. 自動運行一些命令登陸項目(需 expect)和恢復工作環境
  5. 自動化,從其他 terminal 發送命令到任意 terminal
  6. 玩法還有更多等你發現

Vim (Neovim)

閱讀推薦

  • The VimL Primer: Edit Like a Pro with Vim Plugins and Scripts
  • goodreads.com/book/show

如果之後的系列有機會也會拿 Vim 的插件來做介紹,改寫某些插件功能。

sudo apt-get install vim-gtk

tclreadline

Tclreadline 可以用 Tab 鍵去匹配命令,Tab 鍵可以查看變數名,命名空間,以及 Array 里的 key。

還可以自定義 Prompt。

tclreadline.sourceforge.net

sudo apt-get install tclreadline

nagelfar

VIm 我使用了 syntastic 這個語法檢查工具,並配置好了 nagelfar 的支持。杜絕一些拼寫和與簡單的語法錯誤,出錯更多的是邏輯不正確,也是提高效率,節約時間的表現。

github.com/vim-syntasti

nagelfar.sourceforge.net

Features

  • Written in pure Tcl/Tk. No compilation. If you can run Tcl you can run Nagelfar.
  • Extendible. You can add to the syntax database, or let the tool use Tcl』s introspection to extract syntax information from any Tcl interpreter. Thus you can test scripts for applications using Tcl as script language.
  • Plugins. Even more extendible through plugins that can hook up at certain points in the check flow and do custom checking.
  • Severity level filter and glob matching filters to remove errors known to be OK.
  • View and edit the checked source directly in Nagelfar.
  • Inline comments can help Nagelfar do a better job.
  • Code coverage instrumentation. Provides help for simple code coverage analysis.

加入 IC 極客群

本群由 IC 行業的幾位工程師發起,以公益,開源,分享為宗旨,致力於推廣 IC 極客文化,組織大家深入交流 IC 設計領域知識,經驗及方法學,打造 IC 設計圈的思想國。

群也歡迎群友或 IC 極客玩家隨機發起不固定主題的討論。歡迎聯繫文末的微信號小主入群參與分享交流。

支持 (Donate)


推薦閱讀:

錯一次就損失幾百萬,「晶元設計工程師」要做到0失誤|這個職業不太冷
從中興被禁說起--電子技術專欄很有用
漲價!缺貨!全球半導體陷入硅晶圓漲價狂潮……
解決六個低功耗調試陷阱

TAG:Vim | 晶元設計 | zsh |