Skip to content

Instantly share code, notes, and snippets.

@cmplstofB
Last active August 24, 2019 10:18
Show Gist options
  • Save cmplstofB/389d0cebc6f615f70868e0acc953b0e8 to your computer and use it in GitHub Desktop.
Save cmplstofB/389d0cebc6f615f70868e0acc953b0e8 to your computer and use it in GitHub Desktop.
Vim関連の設定(その内以下略)
" Vim syntax file
" Language: ble.sh config file
" Maintainer: cmplstofb
" Version: 8.0-1
" Last Change: 2018-12-27
" https://github.com/akinomyoga/ble.sh/wiki/
if exists("b:current_syntax")
finish
endif
let b:is_bash = 1
runtime! syntax/sh.vim | unlet b:current_syntax
runtime! after/syntax/sh.vim
syntax keyword bleshStatement
\ bleopt
syntax match bleshStatement
\ /ble-\a\+/
syntax match bleshColorSet
\ /\<ble-color-\%(setface\|defface\)\>/
\ skipwhite nextgroup=bleshColorFaceName
syntax keyword bleshColorFaceName contained
\ region region_target region_match
\ disabled overwrite_mode
\ syntax_default syntax_command syntax_quoted
\ syntax_quotation syntax_expr syntax_error
\ syntax_varname syntax_delimiter syntax_param_expansion
\ syntax_history_expansion syntax_function_name syntax_comment
\ syntax_glob syntax_brace syntax_tilde
\ syntax_document syntax_document_begin
\ command_builtin_dot command_builtin command_alias
\ command_function command_file command_keyword
\ command_jobs command_directory
\ filename_directory filename_directory_sticky
\ filename_link filename_orphan filename_setuid
\ filename_setgid filename_executable filename_other
\ filename_socket filename_pipe filename_character
\ filename_block filename_warning filename_ls_colors
\ menu_complete auto_complete
\ skipwhite nextgroup=@bleshColorSpec
syntax keyword bleshColorSpecType contained
\ gspec g face iface sgrspec ansi
syntax match bleshColorSpecTypeOther contained
\ /\a\+:.*/
syntax cluster bleshColorSpec add=bleshColorSpecTypeOther
syntax match bleshColorSpecTypeFace contained
\ /face:/
\ nextgroup=bleshColorFaceName
syntax cluster bleshColorSpec add=bleshColorSpecTypeFace
syntax match bleshColorSpecTypeGspec contained
\ /\%(g:\)\=/
\ nextgroup=bleshColorSpecTypeGspecList
syntax match bleshColorSpecTypeGspecList contained
\ contains=bleshColorSpecTypeGspecSpecial
\ /[^ \t,]\+/
syntax match bleshColorSpecTypeGspecList contained
\ contains=bleshColorSpecTypeGspecSpecial
\ /[^ \t,]\+,/me=e-1,he=e-1
\ nextgroup=bleshColorSpecTypeGspecList
syntax keyword bleshColorSpecTypeGspecSpecial contained
\ bold underline blink invis
\ reverse strike italic standout
\ none
syntax match bleshColorSpecTypeGspecSpecial contained
\ /\%(fg\|bg\)=/me=e-1,he=e-1
\ nextgroup=bleshColorSpecTypeGspecColorName,bleshColorSpecTypeGspecColorNumber
syntax keyword bleshColorSpecTypeGspecColorName contained
\ black brown green olive navy purple teal silver
\ gray red lime yellow blue magenta cyan white orange
syntax match bleshColorSpecTypeGspecColorNumber contained
\ /\%(25[0-5]\|2[0-4]\d\|1\d\d\|0\=1\d\|0\=0\=\d\)/
syntax cluster bleshColorSpec add=bleshColorSpecTypeGspec
syntax cluster shArithParenList add=bleshStatement,bleshColorSet
syntax cluster shCommandSubList add=bleshStatement,bleshColorSet
syntax cluster shCaseList add=bleshStatement,bleshColorSet
highlight def link bleshStatement Statement
highlight def link bleshColorSet Statement
highlight def link bleshColorFaceName Special
highlight def link bleshColorSpecType Type
highlight def link bleshColorSpecTypeFace bleshColorSpecType
highlight def link bleshColorSpecTypeGspec bleshColorSpecType
highlight def link bleshColorSpecTypeGspecSpecial Keyword
highlight def link bleshColorSpecTypeGspecColorName Keyword
highlight def link bleshColorSpecTypeGspecColorNumber Number
let b:current_syntax = "blesh"
set background=dark
highlight clear
if exists("syntax_on")
syntax reset
endif
set t_Co=256
" 合法ファイル名かつ何とも被らない
let g:colors_name = "_"
highlight Comment term=NONE cterm=NONE ctermfg=Gray ctermbg=NONE
highlight Identifier term=bold,italic cterm=bold,italic ctermfg=Magenta ctermbg=NONE
highlight Constant term=NONE cterm=NONE ctermfg=Yellow ctermbg=NONE
highlight Statement term=bold cterm=bold ctermfg=Green ctermbg=NONE
highlight PreProc term=NONE cterm=NONE ctermfg=DarkGreen ctermbg=NONE
highlight Type term=bold cterm=bold ctermfg=Yellow ctermbg=NONE
highlight Special term=NONE cterm=NONE ctermfg=Magenta ctermbg=NONE
highlight Underlined term=underline cterm=underline ctermfg=NONE ctermbg=NONE
highlight _Bold term=bold cterm=bold ctermfg=NONE ctermbg=NONE
highlight _Itaric term=italic cterm=italic ctermfg=NONE ctermbg=NONE
" 通常
highlight Normal term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight Cursor term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight CursorIM term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight CursorColumn term=NONE cterm=NONE ctermfg=NONE ctermbg=DarkGray
highlight CursorLine term=NONE cterm=NONE ctermfg=NONE ctermbg=DarkGray
" 選択
highlight Visual term=reverse cterm=reverse ctermfg=DarkGray ctermbg=NONE
highlight VisualNOS term=reverse cterm=reverse ctermfg=DarkGray ctermbg=NONE
" 特殊
"highlight link Conceal Normal
highlight Conceal term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight ColorColumn term=NONE cterm=NONE ctermfg=DarkGray ctermbg=NONE
highlight EndOfBuffer term=NONE cterm=NONE ctermfg=DarkGrey ctermbg=NONE
highlight VertSplit term=NONE cterm=NONE ctermfg=DarkGrey ctermbg=NONE
highlight FoldColumn term=NONE cterm=NONE ctermfg=DarkGrey ctermbg=NONE
highlight LineNr term=NONE cterm=NONE ctermfg=Gray ctermbg=NONE
highlight CursorLineNr term=NONE cterm=NONE ctermfg=Gray ctermbg=DarkGrey
highlight NonText term=NONE cterm=NONE ctermfg=DarkGrey ctermbg=NONE
highlight SpecialKey term=NONE cterm=NONE ctermfg=Gray ctermbg=NONE
highlight Folded term=NONE cterm=NONE ctermfg=NONE ctermbg=DarkGray
highlight SignColumn term=NONE cterm=NONE ctermfg=Yellow ctermbg=NONE
highlight IncSearch term=reverse cterm=reverse ctermfg=NONE ctermbg=Yellow
highlight MatchParen term=reverse cterm=reverse ctermfg=NONE ctermbg=Yellow
highlight Search term=reverse,bold cterm=reverse,bold ctermfg=Yellow ctermbg=DarkGray
" 通知
highlight ErrorMsg term=reverse cterm=reverse ctermfg=Red ctermbg=NONE
highlight WarningMsg term=reverse cterm=reverse ctermfg=Red ctermbg=NONE
highlight ModeMsg term=bold cterm=bold ctermfg=NONE ctermbg=NONE
highlight MoreMsg term=bold cterm=bold ctermfg=NONE ctermbg=NONE
highlight Question term=bold cterm=bold ctermfg=NONE ctermbg=NONE
highlight Title term=bold cterm=bold ctermfg=NONE ctermbg=NONE
highlight StatusLine term=reverse,bold cterm=reverse,bold ctermfg=Gray ctermbg=Black
highlight StatusLineNC term=reverse cterm=reverse ctermfg=DarkGray ctermbg=Black
highlight TabLine term=reverse cterm=reverse ctermfg=DarkGray ctermbg=Black
highlight TabLineFill term=NONE cterm=NONE ctermfg=Black ctermbg=Black
highlight TabLineSel term=reverse,bold cterm=reverse,bold ctermfg=Gray ctermbg=Black
" 補完
highlight Directory term=bold cterm=bold ctermfg=Blue ctermbg=NONE
highlight WildMenu term=reverse cterm=reverse ctermfg=DarkGray ctermbg=White
highlight Pmenu term=NONE cterm=NONE ctermfg=Black ctermbg=Gray
highlight PmenuSel term=reverse cterm=reverse ctermfg=DarkGray ctermbg=White
highlight PmenuSbar term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight PmenuThumb term=reverse cterm=reverse ctermfg=Gray ctermbg=NONE
highlight QuickFixLine term=bold cterm=bold ctermfg=NONE ctermbg=NONE
" 差異
highlight DiffAdd term=NONE cterm=NONE ctermfg=NONE ctermbg=DarkGreen
highlight DiffDelete term=NONE cterm=NONE ctermfg=NONE ctermbg=DarkRed
highlight DiffChange term=NONE cterm=NONE ctermfg=NONE ctermbg=DarkYellow
highlight DiffText term=bold cterm=bold ctermfg=NONE ctermbg=NONE
" 綴
highlight SpellBad term=NONE cterm=underline ctermfg=NONE ctermbg=NONE
highlight SpellCap term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight SpellLocal term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight SpellRare term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
" ファイルマネージャ
highlight netrwBak term=NONE cterm=NONE ctermfg=Gray ctermbg=NONE
highlight netrwCompress term=bold cterm=bold ctermfg=Red ctermbg=NONE
highlight netrwData term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight netrwHdr term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight netrwLib term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight netrwMakefile term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight netrwObj term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight netrwTags term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight netrwTilde term=NONE cterm=NONE ctermfg=Gray ctermbg=NONE
highlight netrwTmp term=NONE cterm=NONE ctermfg=Gray ctermbg=NONE
" 内部端末
highlight Terminal term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE
highlight StatusLineTerm term=reverse,bold cterm=reverse,bold ctermfg=Gray ctermbg=Black
highlight StatusLineTermNC term=reverse cterm=reverse ctermfg=DarkGray ctermbg=Black
" XKB config file
autocmd BufNewFile,BufRead */{etc,share}/X11/xkb/*/*
\ setfiletype xkb
" X resource file
autocmd BufNewFile,BufRead *.xresources\=
\ setlocal filetype=xdefaults
" Minecraft
autocmd BufNewFile,BufRead */src/main/resources/mcmod.info
\ setlocal filetype=json
" FVWM
autocmd BufNewFile,BufRead /usr/share/fvwm/{Config,Fvwm}*
\ setlocal filetype=fvwm
autocmd BufNewFile,BufRead */fvwm/*.fpl
\ setlocal filetype=perl
" Dircolors
autocmd BufNewFile,BufRead {$XDG_CONFIG_HOME,~/.config}/dircolors
\ setlocal filetype=dircolors
" Geany
" 色設定
autocmd BufNewFile,BufRead */geany/colorschemes/*.conf
\ setlocal filetype=dosini
" Python file
autocmd BufNewFile,BufRead *.{python,py3}
\ setfiletype python
" SKK IME dictionaly
autocmd BufNewFile,BufRead SKK-\=JISYO\c*
\ setfiletype skkdic
" PulseAudio daemon configuration file
" https://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/man/pulse-daemon.conf.5.xml.in
autocmd BufNewFile,BufRead */{etc,.config}/pulse/daemon.conf{,.d/*.conf}
\ setlocal filetype=paconf
" ble.sh
autocmd BufNewFile,BufRead bleshrc,blerc
\ setlocal filetype=blesh
autocmd BufNewFile,BufRead */ble.\\\{,1\}sh/*.sh
\ setlocal filetype=blesh
"autocmd BufNewFile,BufRead */akinomyoga/*/memo* setlocal filetype=akinomyoga-memo
" locale definition file
autocmd BufNewFile,BufRead i18n_ctype
\ setfiletype fdcc
" FontConfig
autocmd BufNewFile,BufRead {$XDG_CONFIG_HOME,~/.config}/fontconfig/fonts.conf
\ setfiletype xml
" TeXLua
autocmd BufNewFile,BufRead *.tlu setfiletype lua
" TeX defined file (package, font, babel)
autocmd BufNewFile,BufRead *.def,*.dfu,*.fd,*.bdf,*.ldf,*.cfg,*/tex/*tex*.src
\ if getline(1) =~ '^\(%\|\\Provides\).*' |
\ setlocal filetype=tex |
\ endif
" TeX INI file
autocmd BufNewFile,BufRead *.ini
\ if getline(1) =~ '^%.*' |
\ setlocal filetype=tex |
\ else |
\ setlocal filetype=dosini |
\ endif
" MetaPost file
autocmd BufNewFile,BufRead *.mpx setfiletype mp
" Tab separated value
"autocmd BufNewFile,BufRead *.tsv setfiletype tsv
" POSIX NLS .msg file
autocmd BufNewFile,BufRead *.msg setfiletype msg
" Vim help file
" NOTE:ちょっと強力すぎるかも
autocmd BufNewFile,BufRead pack/*/doc/*.{txt,??x} setfiletype help
" LeXML file
"autocmd BufNewFile,BufRead *.lexml setfiletype lexml
autocmd BufNewFile,BufRead *.lexml
\ setlocal filetype=lexml
" RDF file
autocmd BufNewFile,BufRead *.rdf
\ if getline(1) =~ '<?xml' |
\ setfiletype xml |
\ endif
" (E)BNF
"autocmd BufNewFile,BufRead *.bnf,*.ebnf setfiletype bnf
" XMP
autocmd BufNewFile,BufRead *.xmp setfiletype xml
"" RDF 1.1 Turtle
autocmd BufNewFile,BufRead *.ttl
\ if search("^\s*@prefix") != 0 |
\ setlocal filetype=txt |
\ else |
\ setlocal filetype=teraterm |
\ endif
autocmd BufRead,BufNewFile *.pkg
\ if getline(1) =~ '<?php' |
\ setfiletype php |
\ elseif getline(1) =~ "^#!\s*/bin/sh" |
\ setfiletype sh |
\ else |
\ setfiletype virata |
\ endif
set guifont=Sarasa\ Term\ J\ 10
set guioptions=mgRp
scriptencoding UTF-8
let b:keymap_name = "general"
loadkeymap
` <char-0x2018> " 左単引用符
' <char-0x2019> " 右単引用符
`` <char-0x201C> " 左複引用符
'' <char-0x201D> " 右複引用符
-- <char-0x2013> " N幅ダッシュ
--- <char-0x2014> " M幅ダッシュ
set encoding=UTF-8
scriptencoding UTF-8
" もしもシステムがcompatibleを設定していたらnocompatibleに。
if &compatible
set nocompatible
endif
unlet! skip_defaults_vim
source $VIMRUNTIME/defaults.vim
" 一連の設定
augroup MyVimrc
autocmd!
augroup END
let s:myvimdir = expand($XDG_CONFIG_HOME) . "/vim"
execute "set runtimepath^=" . s:myvimdir
execute "set runtimepath+=" . s:myvimdir . "/after"
execute "set packpath^=" . s:myvimdir
" 文字符号処理
set fileencodings=ucs-bom,utf-8,euc-jisx0213,euc-jp,cp20932,sjis,cp932,iso-2022-jp,default,latin1
" 改行形式
set fileformat=unix
" 履歴
" 保存できる履歴の量は10000件が限界のようだ。ほんとうはもう少し多いほうがいいのだが
set history=10000
" 状態の記録
set viminfo='10000,<10000,s10000,h
execute "set viminfofile=" . expand($XDG_CACHE_HOME) . "/vim/viminfo"
" 遣り直し
set undofile
set undolevels=10000
set undodir=$XDG_CACHE_HOME/vim/undo
" 一時保存
set swapfile
set updatetime=1000
set directory=$XDG_CACHE_HOME/vim/swap
" バックアップ
set backup
set backupdir=$XDG_CACHE_HOME/vim/bkp
set writebackup
" バッファ
set autoread
set hidden
" セッション
" 終了時自動的にセッションを保存(なんか不具合があるので無効)
"autocmd MyVimrc VimLeave * execute "mksession! " . expand($XDG_DATA_HOME) . "/vim/session"
" <Esc>押下後の態移行がクソ遅いのを修正
set timeout timeoutlen=500
set ttimeout ttimeoutlen=100
" シェル
" こうしないとGNU Bashが~/.profileファイルを読み込まない
if &shell =~ ".*bash.*"
set shell=bash\ --login
endif
" タブ設定
" タブ派
set noexpandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set smarttab
set autoindent smartindent
" 折り返し
set linebreak
" ↓ASCII可視文字じゃないと駄目
"set breakat+=。,(「(“
set breakat+=\|>])
set breakindent
set showbreak=>
" 文字幅
set ambiwidth=single
set emoji
" Unicode合成文字の限界個数
set maxcombine=6
" 特殊文字を強調表示
set list
set listchars=eol:↲
set listchars+=tab:>─
set listchars+=trail:.
"set listchars+=space:.
set conceallevel=2
" 編集しているファイルのディレクトリに自動移動
"autocmd MyVimrc BufEnter *
" \ if split(fnamemodify(expand("%"), ":p:h"), "/", 1)[0] !~ "\(file\|https\=\|ftp\):" |
" \ silent! execute "lchdir" fnamemodify(expand("%"), ":p:h") |
" \ endif
" タイトルを設定
set title titlestring=%F\ -\ VIM
" 行番号
set number
" 警告
set noerrorbells
set novisualbell
" プラグインなど実行時にカクつくのを防ぐ
" 今どきの端末エミュレータで有効にする必要性があるのかは不明
set lazyredraw
" 折り返し
set textwidth=0
set wrap
" 折り畳み
set foldmethod=marker
" クリップボード
let &t_BE = "\<Esc>[?2004h"
let &t_BD = "\<Esc>[?2004l"
" 終了時に画面を消去しない
set norestorescreen
" 綴
set spell
set spelllang+=cjk
" クリップボード
set clipboard-=autoselect
" 特殊前置鍵盤に<Space>を割り当て
let mapleader = "\<Space>"
" `C`, `D` に挙動を合わせる
nnoremap Y y$
" 行の移動で視覚的に違和感を感じないように
nnoremap <silent> <expr> j v:count ? 'j' : 'gj'
nnoremap <silent> <expr> k v:count ? 'j' : 'gk'
xnoremap <silent> <expr> j v:count ? 'j' : 'gj'
xnoremap <silent> <expr> k v:count ? 'j' : 'gk'
onoremap <silent> <expr> j v:count ? 'j' : 'gj'
onoremap <silent> <expr> k v:count ? 'j' : 'gk'
nnoremap <silent> <expr> 0 &l:wrap ? 'g0' : '0'
nnoremap <silent> <expr> $ &l:wrap ? 'g$' : '$'
nnoremap <silent> gj j
nnoremap <silent> gk k
xnoremap <silent> gj j
xnoremap <silent> gk k
onoremap <silent> gj j
onoremap <silent> gk k
" 文字列の置換で視覚的に違和感を感じないように
nnoremap <silent> r gr
nnoremap <silent> R gR
nnoremap <silent> gr r
nnoremap <silent> gR R
" <u>--<U> という対応にする
nnoremap U <C-r>
nnoremap <C-r> U
" 現在日時と時刻を挿入
" Shift+Function Keyが使えない端末がありそう……。
" まだ遭遇してないけど。
inoremap <expr> <F5> strftime("%Y-%m-%d", localtime())
inoremap <expr> <S-F5> strftime("%H:%M:%S", localtime())
" 現在絶対ディレクトリを挿入
inoremap <expr> <F4> fnamemodify(expand("%"), ":p:h")
" 字下げを調整しても依然選択状態を続ける
vnoremap <Lt> <Lt>gv
vnoremap > >gv
" 選択している状態での検索関連
"vnoremap / "zy/<C-r>z<Enter>
" <https://vim.fandom.com/wiki/Search_for_visually_selected_text#Advanced>
vnoremap <silent> *
\ :<C-u>
\ let old_reg = getreg('"')<Bar>
\ let old_regtype = getregtype('"')<Enter>
\ gvy/<C-r><C-r>=substitute(escape(@", '/\.*$^~['),
\ '\_s\+', '\\_s\\+', 'g')<Enter><Enter>
\ gV:call setreg('"', old_reg, old_regtype)<Enter>
vnoremap <silent> #
\ :<C-u>
\ let old_reg = getreg('"')<Bar>
\ let old_regtype = getregtype('"')<Enter>
\ gvy?<C-r><C-r>=substitute(escape(@", '/\.*$^~['),
\ '\_s\+', '\\_s\\+', 'g')<Enter><Enter>
\ gV:call setreg('"', old_reg, old_regtype)<Enter>
" 現在位置を強調
nnoremap <C-g> :<C-u>silent<Space>set<Space>cursorline<Space>cursorcolumn<Enter>:<C-u>file<Enter>
autocmd MyVimrc CursorMoved * if &cursorline + &cursorcolumn > 0 | set nocursorline nocursorcolumn | endif
autocmd MyVimrc InsertEnter * if &cursorline + &cursorcolumn > 0 | set nocursorline nocursorcolumn | endif
" 種々の表示を取消
nnoremap <silent> <C-l> :<C-u>nohlsearch<Bar>redraw!<Enter>
" タブ移動
nnoremap <silent> <C-n> gt
nnoremap <silent> <C-p> gT
" 内部端末
nnoremap <F12> :<C-u>silent!<Space>lcd<Space>%:p:h<Bar>terminal<Enter>
set termwinkey=<C-g>
" Emacs風の手引き入力待機態呼出
nnoremap <C-h> :<C-u>help<Space>
set keywordprg=
" 補完
set wildmenu
set wildmode=longest:full
set wildmode+=list:full
set pumheight=10
" 命令欄の挙動 (Emacsっぽく)
cnoremap <C-p> <Up>
cnoremap <C-n> <Down>
cnoremap <C-a> <Home>
cnoremap <C-e> <End>
cnoremap <C-b> <Left>
cnoremap <C-f> <Right>
cnoremap <C-h> <BS>
cnoremap <C-d> <Del>
cnoremap <C-x><C-b> <S-Left>
cnoremap <C-x><C-f> <S-Right>
cnoremap <C-x><C-m> <C-a>
cnoremap <C-x>l <C-d>
cnoremap <C-l> <C-f>
cnoremap <Space> <C-]><Space>
" <C-c>で離脱する際,履歴を残さない
" FIXME: これは不完全。
" ‘/’で検索した後<C-c>で離脱すると「histdel(...)」という語句を検索してしまう。
" やりたいのは‘/’で入力した値を消去すること。
" こ無ゾ
if 0
cnoremap <silent> <C-c> <End><C-u>call<Space>{-><Space>if<Space>getcmdtype()==":"<Space><Bar><Space>histdel("cmd", -1)<Space><Bar><Space>endif}<Enter>
cnoremap <C-c> <C-\>eCmdHstDelX(getcmdtype())<Enter>
function! CmdHstDelX(cmdtype)
if a:cmdtype == ":"
return histdel("cmd", -1)
else
return call getcmdline()
endif
endfunction
endif
" <C-k>でカーソル位置から行末まで削除
cnoremap <C-k> <C-\>estrpart(getcmdline(), 0, getcmdpos() - 1)<Enter>
" 短縮入力
cabbrev te, tabedit
cabbrev vs, vsplit
cabbrev sp, split
cabbrev @/u/s/ /usr/share/
cabbrev @/u/s/v/ /usr/share/vim/
cabbrev @/u/s/a/ /usr/share/applications/
cabbrev @/u/s/tl/ /usr/share/texlive/texmf-dist/
" IM関係
" 平仮名モード切り替えと競合するので無効に
nnoremap <C-@> <NOP>
inoremap <C-@> <NOP>
"map <C-Space> <NOP>
"map <Nul> <NOP>
" 挿入モードに移行するキー束縛は平仮名モードでも入力可能にする
nmap あ a
nmap い i
nmap お o
" vimgrep
autocmd MyVimrc QuickFixCmdPost *grep* cwindow
nnoremap [q :<C-u>cprevious<CR>
nnoremap ]q :<C-u>cnext<CR>
" 端末エミュレータやX Window Systemと相性が悪いマウス操作束縛を解除
" LibVTEの端末エミュレータなどではShiftを押下しながらマウスを用いることで端末画面自体を操作できる(選択・転写など)
" X Window SystemはAltを押下しながらマウスを使うことでWindowを操作できる(最大化・移動など)
set mouse=a nomousehide
map <S-LeftMouse> <NOP>
map <A-LeftMouse> <NOP>
map <S-RightMouse> <NOP>
map <A-RightMouse> <NOP>
" ↓これは有効にしたい。が,既定の挙動がよく分からんのでとりあえず無効
map <C-LeftMouse> <NOP>
map <C-RightMouse> <NOP>
" 検索
set ignorecase smartcase
set hlsearch
set incsearch wrapscan
" 情報
set display=truncate
set showtabline=2
set laststatus=2
set statusline=
set statusline+=\ %(%m\ %r\ %h\ %w%)
set statusline+=%<
set statusline+=%(%f%)
set statusline+=\ %y
set statusline+=%=
" NOTE: 「U+%04.8B」はファイルの文字符号化方式がUTF-8であることを前提としている
set statusline+=%(U+%04.8B%)
set statusline+=\ %(%l:%c%)
set showcmd
set showmode
" 括弧の対応
set showmatch
set matchpairs+=‘:’,“:”,(:),⦅:⦆,「:」,「:」,『:』,[:],〚:〛,{:},〔:〕,〘:〙,〈:〉,《:》,‹:›,«:»,【:】,〖:〗,〝:〟
" カーソルの形状を態毎に変更
if exists('$TMUX')
let &t_SI .= "\<Esc>Ptmux;\<Esc>\<Esc>[5 q\<Esc>\\"
let &t_SR .= "\<Esc>Ptmux;\<Esc>\<Esc>[4 q\<Esc>\\"
let &t_EI .= "\<Esc>Ptmux;\<Esc>\<Esc>[2 q\<Esc>\\"
elseif &term =~ "screen"
let &t_SI .= "\<Esc>P\<Esc>[5 q\<Esc>\\"
let &t_SR .= "\<Esc>P\<Esc>[4 q\<Esc>\\"
let &t_EI .= "\<Esc>P\<Esc>[2 q\<Esc>\\"
else
let &t_SI .= "\<Esc>[5 q"
let &t_SR .= "\<Esc>[4 q"
let &t_EI .= "\<Esc>[2 q"
endif
" 新規領域の挙動をブラウザなどと挙動を統一
set noequalalways
" 昔は逆の動作が標準だったのかな? 既定の動作だとすごく非直感的なんだけども
set splitbelow splitright
" 差分
set diffopt=internal,filler,algorithm:histogram,indent-heuristic
let g:netrw_silent = 1
let g:netrw_menu = 1
let g:netrw_banner = 0
let g:netrw_preview = 1
let g:netrw_hide = 1
let g:netrw_liststyle = 2
let g:netrw_sizestyle = "H"
let g:netrw_xstrlen = 3
let g:netrw_browsex_viwer = "xdg-open"
"" HTTPでファイルを取得する際の進捗出力を抑制
if 0
if g:netrw_http_cmd == "curl"
let g:netrw_http_xcmd .= " --silent"
elseif g:netrw_http_cmd == "wget"
let g:netrw_http_xcmd .= " --quiet"
elseif g:netrw_http_cmd == "fetch"
let g:netrw_http_xcmd .= " --quiet"
endif
endif
set noexrc
set nosecure
set cryptmethod=blowfish2
" emmet-vim<https://mattn.github.io/emmet-vim/>の設定
" 前置鍵盤は<C-\>(Ctrl+4などで入力)。
let g:emmet_html5 = 1
let g:user_emmet_leader_key = "<C-\\>"
let g:user_emmet_settings = {}
let g:user_emmet_settings["variables"] = {"lang": "ja", "locale": "ja-JP"}
let g:user_emmet_settings["html"] = {"filters": "html"}
let g:user_emmet_settings["html"]["default_attributes"] = {"meta:compat":
\ [{ "http-equiv": "X-UA-Compatible" },
\ { "content": "IE=edge" }]}
let g:user_emmet_settings["html"]["snippets"] = {"html:5":
\ "<!DOCTYPE html>\n" .
\ "<html lang=\"${lang}\">\n" .
\ "<head>\n" .
\ "\t<meta charset=\"${charset}\">\n" .
\ "\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n" .
\ "\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n" .
\ "\n" .
\ "\t<title>新しいHTML文書</title>\n" .
\ "\</head>\n" .
\ "\n" .
\ "<body>\n" .
\ "\t<header>\n" .
\ "\t</header>\n" .
\ "\n" .
\ "\t<main>\n" .
\ "\t\t<h1>新しいHTML文書</h1>\n" .
\ "\n" .
\ "\t\t<section>\n" .
\ "\t\t\t<p>|</p>\n" .
\ "\t\t</section>\n" .
\ "\t</main>\n" .
\ "\n" .
\ "\t<footer>\n" .
\ "\t</footer>\n" .
\ "</body>\n" .
\ "</html>"}
" XML
let g:user_emmet_settings["xml"] = {"filters": "html"}
let g:user_emmet_settings["xml"]["snippets"] = {"!!!":
\ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"}
let g:user_emmet_settings["xml"]["snippets"] = {"xml:rdf":
\ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" .
\ "<rdf:RDF\n" .
\ " xml:lang=\"${lang}\"\n" .
\ " xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n" .
\ "\t<rdf:Description rdf:about=\"\">\n" .
\ "\t\t|\n" .
\ "\t<rdf:Description>\n" .
\ "</rdf:RDF>"}
filetype plugin indent on
syntax enable
colorscheme _
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment