Files
report-temp/nix/vim.nix
T

95 lines
2.6 KiB
Nix

{ pkgs, lib, ... }:
let
abbrevJSON = lib.importJSON ../abbrev.json;
toEnvAbbrev = aj:
lib.concatLines (map (e:
"iabbrev <buffer> ${e.alias} \\begin{${e.target}}<CR><CR>\\end{${e.target}}<Esc>ki"
) aj.env);
toMathAbbrev = aj:
lib.concatLines (map (e:
"iabbrev <buffer> m${e.alias} ${e.target}"
) aj.math);
toGenericAbbrev = aj:
lib.concatLines (map (e:
"iabbrev <buffer> ${e.alias} ${e.target}"
) aj.generic);
in
pkgs.vim-full.customize {
name = "vim";
vimrcConfig = {
packages.myPackages = with pkgs.vimPlugins; {
start = [
vim-eskk
vimtex
];
opt = [];
};
customRC = ''
filetype plugin indent on
set encoding=utf-8
set autoindent
set smartindent
set expandtab
set shiftwidth=4
set tabstop=4
set wrap
set number relativenumber
set nospell
set ruler
set cursorline
set mousehide
syntax enable
let g:vimtex_view_method = 'general'
let g:vimtex_view_general_viewer = 'okular'
let g:vimtex_view_general_options = '--unique file:@pdf\#src:@line@tex'
let g:vimtex_compiler_method = 'latexmk'
let maplocalleader = ","
let g:eskk#directory = "~/.config/eskk"
let g:eskk#dictionary = { 'path': "~/.config/eskk/jisyo", 'sorted': 1, 'encoding': 'utf-8', }
let g:eskk#large_dictionary = { 'path': "${pkgs.skkDictionaries.l}/share/skk/SKK-JISYO.L", 'sorted': 1, 'encoding': 'euc-jp', }
let g:eskk#kakutei_when_unique_candidate = 0
let g:eskk#enable_completion = 0
let g:eskk#no_default_mappings = 1
let g:eskk#keep_state = 0
let g:eskk#egg_like_newline = 1
let g:toggle_latex_eskk = 1
function! s:latex_eskk() abort
if &filetype == 'tex' && g:toggle_latex_eskk ==# 1
call eskk#enable()
endif
endfunction
function! s:latex_eskk_toggle() abort
let g:toggle_latex_eskk = g:toggle_latex_eskk == 1 ? 0 : 1
if g:toggle_latex_eskk ==# 1
echomsg 'LaTeX Japanese Input Enabled'
else
echomsg 'LaTeX Japanese Input Disabled'
endif
endfunction
augroup vimrc_eskk
autocmd!
autocmd Filetype tex nnoremap <buffer><silent> <F1> :call <SID>latex_eskk_toggle()<CR>
autocmd User eskk-enable-post lmap <buffer> l <Plug>(eskk:disable)
augroup END
imap jk <Plug>(eskk:toggle)
cmap jk <Plug>(eskk:toggle)
imap jj <C-]>
augroup latex_abbr
${toEnvAbbrev abbrevJSON}
${toGenericAbbrev abbrevJSON}
${toMathAbbrev abbrevJSON}
augroup END
'';
};
}