-
Notifications
You must be signed in to change notification settings - Fork 0
/
vim.nix
97 lines (85 loc) · 3.36 KB
/
vim.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
with import <nixpkgs> {};
vim_configurable.customize {
name = "vim";
vimrcConfig.customRC = ''
syntax on
" load plguin
" install vim-plug:
" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
" 這個是明天的東西,先註解掉,才不會出錯
" so ~/.config/nvim/plugin.vim
" 256 色
set t_Co=256
" 解決和 tmux 衝突,https://vi.stackexchange.com/questions/238/tmux-is-changing-part-of-the-background-in-vim
set t_ut=
" 選一個你喜歡的 colorschema
" available color schema
" blue darkblue default delek desert elflord evening industry koehler
" morning murphy pablo peachpuff ron shine slate torte zellner
colorscheme industry
" 雜項設定,詳細解說請用 `:help <opeion>`,例如 `:help showcmd`
set showcmd
set nu
set tabstop=4
set shiftwidth=4
set autoindent
set nowrap
set incsearch
set autoindent
set cindent
set smartindent
set cursorline
" make lightline work in single screen
" https://github.com/itchyny/lightline.vim/issues/71#issuecomment-47859569
set laststatus=2
" 開啟滑鼠功能,對初學者來說非常好用
set mouse=a
" markdown
" 如果是檔案類型是 markdown 或 text,打開文字折疊(超出螢幕寬度會折到下一行)
" au 的語法等等會講
au FileType markdown set wrap
au FileType text set wrap
" ejs
" 不加這個的話 ejs 的語法突顯會很奇怪,順便附帶一個 ft, filetype 的坑
" https://vi.stackexchange.com/questions/16341/what-is-the-difference-between-set-ft-and-setfiletype
au BufNew,BufNewFile,BufRead *.ejs :set filetype=ejs
au FileType ejs set syntax=html
" ts
" 這只是因為我比較喜歡 vim 對 javascript 的配色,typesript 的我覺得很醜,所以強制 vim 用 javascript 的配色
" au 就是 autocmd 的縮寫啦!(vim 幾乎每個超過三個字的命令、選項都有縮寫,寫程式的人都很懶XD)
" autocmd BufNewFile,BufRead *.ts set syntax=javascript
" yaml
" yaml 機車的空格限制,這樣在寫 yaml 檔時比較方便
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab
" hotkey
" 這邊是自訂快捷鍵,語法等等會講,這邊只說明用法
" 在命令模式按 <tab> 會把整行字向右移一個 tab。<S-tab> 會移回來
map <tab> :s/^/\t<CR>
map <S-tab> :s/^\t/<CR>
" 如果要從系統剪貼簿貼上多行程式碼,建議這樣用,才不會被 vim 的自動縮排雷到(你試試就知道是什麼問題,很討厭)
nmap <F3> :r! cat<CR>
" 切換行號,在複製到系統鍵貼簿時很好用,這樣就不會複製到行號
"nmap <F7> :set invnumber<CR>
" 清除搜尋結果的語法突顯
nmap cs :noh<CR>
nmap <F5> i#include<bits/stdc++.h> <CR>using namespace std; <CR>int main(<Esc>la{
inoremap " ""<Esc>i
inoremap ' '<Esc>i'
inoremap [ []<Esc>i
inoremap ( ()<Esc>i
inoremap {<CR> {<CR>}<Esc>O
nmap <F7> :w<CR> <bar> :!g++ -o a.out % && ./a.out <CR>
" alias
" 冒號命令的別名,語法等等會講
" 常用就知道為什麼要設這個(按冒號時要按 <shift>,然後下一個字就很常變大寫,簡稱手殘)
command W w
command Q q
command Wq wq
command WQ wq
" fix bg color error in Pmenu
" 這個只是顯示問題,有時候背景色和前景色一樣你就看不到字了,所以要自己把他換掉,語法等等會講
" https://vi.stackexchange.com/questions/23328/change-color-of-coc-suggestion-box
hi Pmenu ctermbg=black ctermfg=white
hi Ignore ctermbg=black ctermfg=lightblue
'';
}