LINUX.ORG.RU

Vim, vimrc, colorscheme

 , ,


0

2

Всем доброго времени!
Начал осваивать 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
Ответ на: комментарий от habamax
:reg
--- Регистры ---
""   "TAB'ы^Jset tabstop=4^Jset shiftwidth=4                "4 пробела для автоотступа^Jset smarttab
"0   "TAB'ы^Jset tabstop=4^Jset shiftwidth=4                "4 пробела для автоотступа^Jset smarttab
"1   if^J    highlight ColorColumn ctermbg=234 guibg=#000000^J    highlight CursorLine ctermbg=234 guibg=#000000
"2       highlight Normal ctermbg=16 guibg=#000000^J
"3   List other overrides here^J
"4    g:colors_name == "gruvbox"^J
"-   "
"*   "TAB'ы^Jset tabstop=4^Jset shiftwidth=4                "4 пробела для автоотступа^Jset smarttab
"+   set clipboard=unnamed

Как копировать текст с "*y и "+y без понятия…

parnyagan
() автор топика
Ответ на: комментарий от parnyagan

Я вижу что у тебя в 2 нужных регистрах есть скопированная инфа.

"*   "TAB'ы^Jset tabstop=4^Jset shiftwidth=4                "4 пробела для автоотступа^Jset smarttab
"+   set clipboard=unnamed

почитай про них в хелпе… :h clipboard-unnamed, :h clipboard-unnamedplus

PS

поменяй

set clipboard=unnamedplus

PPS

Научись пользоваться регистрами – полезно.

  • :h registers
  • :h quoteplus
  • :h yank

как копировать с "+y – так и копировать – выдели текст и "+y – текст должен оказаться в регистре +, который по совместительству является отображением одного из системных клипбордов.

habamax ★★★
()
Ответ на: комментарий от parnyagan

Есил имеется ввиду копирование через «Визуальный режим», то таким методом скопированный текст можно вставить только в Vim.

Нет.

set clipboard+=unnamed

Выдели что-нибудь:

v5ly

Оно должно вставляться через Shift+Insert (или среднюю кнопку мыши).

Если хочешь пользоваться Control+V в графических приложениях (и наркоманским Control+Shift+V в терминале) — set clipboard+=unnamedplus.

mord0d ★★★★★
()
Ответ на: комментарий от habamax

Копировать лучше средствами vim, если сможешь настроить, конечно.

если сможешь настроить

Там настраивать — одна строчка. Две, если нужно чуть более тонко.

mord0d ★★★★★
()
Ответ на: комментарий от parnyagan

Все равно копирует со стокой нумерации.

В деталях расскажи как ты это делаешь?

// Я мышью не пользуюсь, у меня её просто нет.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d
  1. Мышью выделяю в Vim’е нужный мне кусок текста.
  2. Вставляю в другом приложении, например в данном окне ввода текста в FF через CTRL+V.
parnyagan
() автор топика
Ответ на: комментарий от habamax

почитай про них в хелпе

Я уже писал в теме о том, что с английским я далеконе «на ты», а транслитом хэлпы переводятся как бред сумасшедшего, лупанувшего не один стакан водки залпом.

parnyagan
() автор топика
Ответ на: комментарий от mord0d

Там настраивать — одна строчка. Две, если нужно чуть более тонко.

Не спорю.

Однако конкретно для топикстартера все не так просто.

habamax ★★★
()
Ответ на: комментарий от parnyagan

Мышью выделяю в Vim’е нужный мне кусок текста.

Твой терминал не передаёт управление мышью в Vim, или Vim не настроен для использования мыши?

set mouse=ar

Вставляю в другом приложении, например в данном окне ввода текста в FF через CTRL+V.

unnamedplus (читай мои комментарии выше).

mord0d ★★★★★
()
Ответ на: комментарий от habamax

Однако конкретно для топикстартера все не так просто.

Да, я как-то привык, что все вокруг знают английских хотя бы на уровне, достаточном для чтения документации. Мир не идеален… к счастью. ☺

Но у топикстартера проблема больше не в чтении документации, а в том, что он пытается просунуть свои круглые привычки в квадратные подходы вима. ☺ Со временем поймёт что круглое нужно носить, а квадратное — катать.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

set mouse=ar
и
set clipboard+=unnamedplus
добавил в vimrc, теперь все подцепилось. При выделении в «Визуальном режиме», нажатии y и последующей вставкой в другом приложении через CTRL+V, вставка происходит корректно!

parnyagan
() автор топика
Ответ на: комментарий от parnyagan

НУ вот же!!!
@mord0d Теперь добавил
set cpoptions+=n
и номера строк перестали копироваться при выделении мышью и последующей вставкой через CTRL+V в другом приложении.

parnyagan
() автор топика
Ответ на: комментарий от parnyagan
  1. У меня в vimrc добавлена строка
    set fileencodings=utf8,cp1251
    для последовательности определения кодировок при редактировании файлов. Это на сколько я понимаю юникод и виндовая кодировка, но не могу нагуглить как добавить кодировку от МАКа…
  2. За что отвечает команда
    set clipboard=unnamed
    чтобы сразу раскомментировать ее в vimrc. А то со временем это все забывается…
parnyagan
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.