Всем доброго времени!
Начал осваивать Vim и конечно же хочется иметь в своем «арсенале» годный vimrc
.
Вот решил обратиться к знатокам, которые пользуются Vim’ом уже давно и знают в этом толк.
Помогите довести мой vimrc
«до ума». Может стоит что-то удалить или поменять строки местами, что-то добавить… в общем буду рад Вашим рекомендациям!
Не пинайте сильно, т.к. Vim’ом пользуюсь относительно недавно и собирал vimrc
из того что нашел на просторах интернета.
Вот мой vimrc
на обозрение:
"Перенос строк
"set wrap "включить перенос строк (set nowrap отключает перенос строк)
set linebreak "перенос строк по словам, а не по буквам
set textwidth=80 "количество символов в строке
"TAB'ы
set tabstop=4
set shiftwidth=4 "4 пробела для автоотступа
set smarttab
set expandtab "Ставим TAB'ы пробелами
set softtabstop=4 "4 пробела в TAB'е
retab "переопределить все TAB'ы в файле в соответситвии с установленными параметрами
"Поиск
set hlsearch "подсветка результатов поиска
set incsearch "подсветка результатов поиска по мере набора текста
set ignorecase "игнорировать регистр в поиске
set smartcase "переопределить ignorecase, если есть символы в верхнем регистре
"Оформление
filetype indent plugin on "автоматическое определение типа файлов
set filetype=markdown
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md set ft=markdown
syntax on "подсветка синтаксиса
syntax enable
set syntax=markdown
set t_Co=256
set termguicolors
let g:oceanic_next_terminal_bold = 1
let g:oceanic_next_terminal_italic = 1
set background=dark
colorscheme OceanicNext
"colorscheme archman
"colorscheme better-molokai
"Мышь
set mousehide "прятать курсор мыши при наборе текста
"set mouse=a "поддержка мыши
"Кодировка текста
set termencoding=utf-8 "кодировка терминала
set encoding=utf-8 "кодировка файлов по умолчанию
set fileencodings=utf8,cp1251
"Отключение .swp и ~ (резервных) файлов
set nobackup
set noswapfile
set clipboard=unnamed
"Разное
set autoindent "автоотступ
set number "нумерация строк
set ruler "положение курсора в документе
"pass
augroup pass
au!
au VimEnter
\ /dev/shm/pass.?*/?*.txt
\,$TMPDIR/pass.?*/?*.txt
\,/tmp/pass.?*/?*.txt
\ set nobackup nowritebackup noswapfile viminfo= noundofile
augroup END
"Vim-plug
call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree', { 'on': 'NERDTreeToggle' } "NERDTree
Plug 'suan/vim-instant-markdown', { 'for': 'markdown' } "vim-instant-markdown
Plug 'jiangmiao/auto-pairs' "Auto Pairs
Plug 'ELouisYoung/vim-better-molokai'
Plug 'atahabaki/archman-vim'
Plug 'mhartington/oceanic-next'
call plug#end()
"vim-instant-markdown
let g:instant_markdown_browser = "firefox --new-window" "открыть предпросмотр в новом окне браузера
let g:instant_markdown_autostart = 0 "отключить автозапуск окна предпросмотра
"let g:instant_markdown_slow = 1 "отключить обновление экрана в режиме Real-Time
"let g:instant_markdown_open_to_the_world = 1 "по умолчанию сервер слушает только на localhost, чтобы сделать сервер доступным для всех в сети, включить данную опцию
"let g:instant_markdown_allow_unsafe_content = 1 "разрешить выполнение скриптов
"let g:instant_markdown_allow_external_content = 0 "заблокировать внешние ресурсы, такие как изображения, таблицы стилей, рамок и плагинов
"let g:instant_markdown_mathjax = 1
"let g:instant_markdown_logfile = '/tmp/instant_markdown.log'
"let g:instant_markdown_autoscroll = 0 "автопереход к местоположению курсора
"let g:instant_markdown_port = 8888 "выбрать другой порт, а не 8090
"let g:instant_markdown_python = 1
"Сочетания клавиш
map <C-n> :NERDTreeToggle<CR>
map <C-m> :InstantMarkdownPreview<CR>
nnoremap <C-o> :nohl<CR><C-L> "очистить подсветку поиска и начать новый поиск
"Удобное управление окнами
map <silent> <C-h> :call WinMove('h')<CR>
map <silent> <C-j> :call WinMove('j')<CR>
map <silent> <C-k> :call WinMove('k')<CR>
map <silent> <C-l> :call WinMove('l')<CR>
"Удобное управление окнами
function! WinMove(key)
let t:curwin = winnr()
exec "wincmd ".a:key
if (t:curwin == winnr())
if (match(a:key,'[jk]'))
wincmd v
else
wincmd s
endif
exec "wincmd ".a:key
endif
endfunction
Еще интересует как задать ширину строк в n-количество символов, к примеру 80 или 100?
Нашел только то, что можно добавить параметр set textwidth=80
для переноса строк, если в строке более 80 символов, но почему-то у меня это не срабатывает.
И почему, как я понял из найденой информации, ширина строки по умоллчанию 80 символов?
Можно ли добавить поддержку зачеркнутого и подчеркнутого текста в Vim? А то жирный и курсив отображаются, а зачеркнутый и подчеркнутый - нет.
Упомяну тот момент, что часто приходится редактировать файлы Markdown (*md) и хотелось бы иметь черную тему оформления с яркой (неоновой) подсветкой синтаксиса именно в этих документах…ну и в других типах файлов тоже не помешает. Пока что так мне так и не удалось найти достойного кандидата в плане тем. Уточню, что тема интересует с черным фоном, т.е. #000000
, а не серый, темно-серый и т.д.
Так же был бы рад, если кто-то помог бы с пояснением к параметрам, где этого не хватает.
Kubuntu 18.04 LTS.
user ~ $ vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Mar 18 2020 18:29:15)
Заплатки: 1-1453
С изменениями, внесёнными pkg-vim-maintainers@lists.alioth.debian.org
Скомпилирован pkg-vim-maintainers@lists.alioth.debian.org
Огромная версия без графического интерфейса. Включённые (+) и отключённые (-) особенности:
+acl +farsi +mouse_sgr -tag_any_white
+arabic +file_in_path -mouse_sysmouse -tcl
+autocmd +find_in_path +mouse_urxvt +termguicolors
-autoservername +float +mouse_xterm +terminal
-balloon_eval +folding +multi_byte +terminfo
+balloon_eval_term -footer +multi_lang +termresponse
-browse +fork() -mzscheme +textobjects
++builtin_terms +gettext +netbeans_intg +timers
+byte_offset -hangul_input +num64 +title
+channel +iconv +packages -toolbar
+cindent +insert_expand +path_extra +user_commands
-clientserver +job -perl +vertsplit
-clipboard +jumplist +persistent_undo +virtualedit
+cmdline_compl +keymap +postscript +visual
+cmdline_hist +lambda +printer +visualextra
+cmdline_info +langmap +profile +viminfo
+comments +libcall -python +vreplace
+conceal +linebreak +python3 +wildignore
+cryptv +lispindent +quickfix +wildmenu
+cscope +listcmds +reltime +windows
+cursorbind +localmap +rightleft +writebackup
+cursorshape -lua -ruby -X11
+dialog_con +menu +scrollbind -xfontset
+diff +mksession +signs -xim
+digraphs +modify_fname +smartindent -xpm
-dnd +mouse +startuptime -xsmp
-ebcdic -mouseshape +statusline -xterm_clipboard
+emacs_tags +mouse_dec -sun_workshop -xterm_save
+eval +mouse_gpm +syntax
+ex_extra -mouse_jsbterm +tag_binary
+extra_search +mouse_netterm +tag_old_static
общесистемный файл vimrc: "$VIM/vimrc"
пользовательский файл vimrc: "$HOME/.vimrc"
второй пользовательский файл vimrc: "~/.vim/vimrc"
пользовательский файл exrc: "$HOME/.exrc"
defaults file: "$VIMRUNTIME/defaults.vim"
значение $VIM по умолчанию: "/usr/share/vim"
Параметры компиляции: gcc -c -I. -Iproto -DHAVE_CONFIG_H -Wdate-time -g -O2 -fdebug-prefix-map=/build/vim-dfCUyu/vim-8.0.1453=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Сборка: gcc -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim -lm -ltinfo -lnsl -lselinux -lacl -lattr -lgpm -ldl -L/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu -lpython3.6m -lpthread -ldl -lutil -lm