vim 由淺入淺

42
由淺入淺 hydai@htcg 2015/11/8

Upload: hydai

Post on 16-Apr-2017

632 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Vim 由淺入淺

由淺入淺hydai@htcg 2015/11/8

Page 2: Vim 由淺入淺

哈秋 <3hachu.cat

Page 3: Vim 由淺入淺

hydai我叫海帶,可以吃的那種

你可以透過下⾯面的⽅方式找到我[email protected]@hydai on GitHub

本投影⽚片採⽤用以下授權

Page 4: Vim 由淺入淺

簡單介紹⼀一下來歷

傳說中的編輯器之神

▸ ⽂文字編輯器

▸ 基本上不需要滑⿏鼠就可以操作

▸ ⾼高度客製化,想怎麼改就怎麼改

▸ ⼀一堆神奇的 Plugin 更加強化功能

▸ 多數的⼯工作站上有機會遇⾒見他

▸ 學習曲線,頗陡

Page 5: Vim 由淺入淺

$ vim # 開啟 vim

Page 6: Vim 由淺入淺

$ vim file # 開啟 file

Page 7: Vim 由淺入淺

介紹 vim mode

Normal mode

Start

i,I,a,A,o,OInsert mode

<ESC>

Bottom-line mode

: <ENTER>

Page 8: Vim 由淺入淺

⼀一進⼊入是 normal mode

Page 9: Vim 由淺入淺

按下 i 進⼊入 insert mode

Page 10: Vim 由淺入淺

按下 <ESC> 回到 normal mode

Page 11: Vim 由淺入淺

按下 : 進⼊入 bottom-line mode

Page 12: Vim 由淺入淺

在 normal mode 移動游標C-f Page upC-b Page downC-u Half page upC-d Half page downgg 移到檔案開頭G 移到檔案結尾zz 將游標所在該⾏行 移動到螢幕中間numG 移到第 num ⾏行

Page 13: Vim 由淺入淺

在 normal mode ⽂文字處理

x deleteX backspacedd 刪除或剪下游標在的那⼀一⾏行yy 複製游標在的那⼀一⾏行p 貼上前⼀一個剪下或複製的值u undoC-r redo

Page 14: Vim 由淺入淺

存檔離開

:w 存檔:q 離開:wq 存檔並離開:q! 強⾏行離開,會遺失為儲存的資料

Page 15: Vim 由淺入淺

搜尋字串

/string 往後搜尋字串?string 往前搜尋字串n 前往下⼀一個結果N 前往上⼀一個結果

Page 16: Vim 由淺入淺

分割視窗:split ⽔水平分割:split file 將開啟檔案放到⽔水平分割視窗中:vsplit 垂直分割:vsplit 將開啟檔案放到垂直分割視窗中C-w hjkl 移動游標到哪個分割視窗中

Page 17: Vim 由淺入淺

看起來很醜難⽤用呀?真的是編輯器之神?

你可能會這樣想

Page 18: Vim 由淺入淺

你沒裝插件、沒客制化當然不夠好⽤用囉~

不可質疑 Vim ⼤大神

Page 19: Vim 由淺入淺

撰寫你⾃自⼰己的 vimrc 吧!

vimrc 通常會放在你的家⺫⽬目錄 好⽐比說 /home/hydai/.vimrcvim 有許多的功能選項 可以直接從 bottom-line mode 那邊進⾏行輸⼊入寫⼊入 vimrc 則為⼀一啟動就載⼊入這些設定

Page 20: Vim 由淺入淺

General 設定

" 這是註解filetype plugin indent on "偵測檔案格式syntax on "syntax highlightscriptencoding utf8 "設定編碼 utf8set mouse=a "開啟滑⿏鼠模式set background=dark "以深⾊色為底

Page 21: Vim 由淺入淺

Vim UI 設定

set number "顯⽰示⾏行號set showmode "顯⽰示⺫⽬目前模式

set cursorline "在當前⾏行下顯⽰示標記" 以下兩⾏行會更加 highlight 當前⾏行highlight clear SignColumnhighlight clear LineNr

Page 22: Vim 由淺入淺

Vim UI 設定 - con't

set showcmd "顯⽰示輸⼊入的指令set showmatch "對應的括弧

set hlsearch "highlight searchset smartcase "同下 set ignorecase "忽略⼤大⼩小寫搜尋

Page 23: Vim 由淺入淺

Vim Formatting 設定

set autoindent "⾃自動縮排set smartindent "智慧縮排

set shiftwidth=4 "讓縮排是四格空⽩白set tabstop=4 "內縮是四個欄位set softtabstop=4 "backspace可刪除tab

Page 24: Vim 由淺入淺

Vim Formatting 設定

set expandtab "⽤用空⽩白取代 tab

autocmd FileType make setlocal noexpandtab

"上⾯面這⾏行是為了編輯 makefile 時保持使⽤用 tab

Page 25: Vim 由淺入淺

Key binding 設定 (leader)let mapleader = ',' " 讓 , 作為指令的開頭

" Toggle highlight search

nmap <leader>/ :set hlsearch! hlsearch?<CR>

" Toggle paste mode

nmap <leader>p :set invpaste paste?<CR>

Page 26: Vim 由淺入淺

Key binding 設定 (indent)" Visual shifting

vnoremap < <gv

vnoremap > >gv

Page 27: Vim 由淺入淺

⽅方便的設定" 開啟檔案可以回到上次離開的游標位置autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif

" 能標記出怪怪的空⽩白位置

set list

set listchars=tab:›\ ,trail:•,extends:#,nbsp:.

Page 28: Vim 由淺入淺

看了這麼多可怕的東⻄西還沒加上插件喔( ̄▽ ̄)

覺得疲憊了嗎?

Page 29: Vim 由淺入淺

使⽤用 Vundle 來做套件管理吧!

很久很久以前,裝套件是直接把插件的檔案放進去某個特定位置

要控管、要升級都算是⼀一個⼩小⼩小的惡夢於是有⼈人做出了裝備介⾯面,讓⼤大家可以輕鬆處理

在這麼多套套件管理的⼯工具,我選擇 Vundle他使⽤用上算是直覺的⼯工具

Page 30: Vim 由淺入淺

起⼿手式 - 安裝 Vundle

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

接著要進去你的 vimrc 中把設定檔案放好喔!

Page 31: Vim 由淺入淺

替替 Vundle 設定 vimrc

set nocompatible " requiredfiletype off " required

set rtp+=~/.vim/bundle/Vundle.vim " Vundle 路徑call vundle#begin() " 以下放你想裝的 Plugin

Plugin 'VundleVim/Vundle.vim' " Vundle 控管⾃自⼰己Plugin 'L9' " Vim script library

call vundle#end() " 以上放你想裝的 Plugin

Page 32: Vim 由淺入淺

安裝 Plugin 吧!把剛才的 vimrc 存檔以後,再重新開啟打上 :PluginInstall他就會開始幫你裝囉

Page 33: Vim 由淺入淺

NERDTreenmap <leader>t :NERDTreeToggle<CR> " 快速開啟

Page 34: Vim 由淺入淺

NERDCommenter

註解該⾏行 <leader>cc

解除註解該⾏行 <leader>cu

直接 DEMO

Page 35: Vim 由淺入淺

syntastic幫你做語法檢查,要加上下⾯面的設定,直接 DEMO

Page 36: Vim 由淺入淺

ctrlp - 快速開檔案可惜 c-p 太常⽤用,我會改⽤用nnoremap <c-\> :CtrlP<CR>

Page 37: Vim 由淺入淺

airline - 下⾯面那條 status bar

Page 38: Vim 由淺入淺

airline - 下⾯面那條 status bar

Page 39: Vim 由淺入淺

solarized - 好看的color schema

要設定成 256 ⾊色,不然會醜醜的QQ下⾯面的順序要放對,不然看起來會怪怪的

Page 40: Vim 由淺入淺

Code snippet幫你補完各種常⽤用的 code block需要裝下⾯面三個插件

Page 41: Vim 由淺入淺

超強⼤大⾃自動補完裝下⾯面這三個套件,還需要加上些設定

Page 42: Vim 由淺入淺

資源推薦▸ 強⼤大插件整理區 Vim awesome

▸ http://vimawesome.com/

▸ Vim 內建的教學

▸ :help

▸ 超絕懶⼈人包

▸ https://github.com/spf13/spf13-vim

▸ vgod 的 Vim ⼊入⾨門圖解

▸ http://blog.vgod.tw/2009/12/08/vim-cheat-sheet-for-programmers/