Первая версия vimrc

master
Andrew 2022-05-11 23:08:49 +04:00
commit 1f100f2166
Signed by: i
GPG Key ID: F7107F1C9D7B9981
2 changed files with 122 additions and 0 deletions

36
README.md Normal file
View File

@ -0,0 +1,36 @@
VIMRC для локальной работы
==========================
Данная конфигурация vim достаточно минимальна и использует только сторонюю тему [iceberg](https://github.com/cocopon/iceberg.vim/).
Установка
---------
1. Делаем бэкап текущей версии
```shell
cp ~/.vimrc ~/.vimrc_bak
```
2. Загружаем файл
```shell
curl https://code.geekfrom.ru/i/vimrc/raw/branch/master/vimrc > ~/.vimrc
```
или ставим через git
```shell
git clone https://code.geekfrom.ru/i/vimrc.git
ln -s vimrc/vimrc ~/.vimrc
```
Возможности
-----------
- `*` и `#` работают и в visual mode тоже. `Ctrl+l` выключает подсветку.
- более удобная подсветка при поиске
- в пути `%%` разворачивается в полный путь до текущего файла
- используется системный буфер.

86
vimrc Normal file
View File

@ -0,0 +1,86 @@
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" File: vimrc
" Maintainer: Andrew Nechaev <i@geekfrom.ru>
" Version: 0.0.1
" Created: 10th May 2022
" Modified: 2022-05-11 10:25+0400
" License: MIT
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nocompatible " Отключаем совместимость с vi
syntax enable " Включаем подсветку синтаксиса
filetype plugin on " Включаем поддержку расширений
set number relativenumber " Включаем релятивную нумерацию строк
set tabstop=4 softtabstop=4 shiftwidth=4 expandtab " Табы и пробелы
set list
set lcs=tab:>-,eol:<,nbsp:% " Подсвечиваем табы и переносы строк
set smartindent " Добавляем умный отступ
set autoindent " Избавляемся он непонятного поведения при вставки из буфера
set backspace=indent,eol,start " Делаем возможность по забою удалять нормально
set wildmenu " Добавляем меню в автодополнение
set wildmode=list,full
set history=200 " Увеличиваем количество запоминаемых команд с 20 до 200
set clipboard^=unnamed,unnamedplus " Копируем в нормальный буфер
set hidden " Разрешим переключатся между буферами с несохраненными данными
set splitbelow " Открывать сплит снизу
set splitright " Открывать сплит справа
set scrolloff=5 " Прокручиваем окно, когда осталось меньше 5 строк
" Если в пути написать %% то автоматически подставится полный путь до
" директории, в которой лежит файл в текущем буфере
cnoremap <expr> %% getcmdtype() == ':' ? expand('%:h').'/' : '%%'
" Бинд Ctrl-l на временное выключение подстветки до следующего поиска
nnoremap <silent> <C-l> :<C-u>nohlsearch<CR><C-l>
set hls
" подствечиваем поиск сразу же
set incsearch
" makes * and # work on visual mode too.
function! s:VSetSearch(cmdtype)
let temp = @s
norm! gv"sy
let @/ = '\V' . substitute(escape(@s, a:cmdtype.'\'), '\n', '\\n', 'g')
let @s = temp
endfunction
xnoremap * :<C-u>call <SID>VSetSearch('/')<CR>/<C-R>=@/<CR><CR>
xnoremap # :<C-u>call <SID>VSetSearch('?')<CR>?<C-R>=@/<CR><CR>
" улучшаем переключение между буферами и табами через []{}
nnoremap <silent> [b :bprevious<CR>
nnoremap <silent> ]b :bnext<CR>
nnoremap <silent> [B :bfirst<CR>
nnoremap <silent> ]B :blast<CR>
nnoremap <silent> [t :tabprevious<CR>
nnoremap <silent> ]t :tabnext<CR>
nnoremap <silent> [T :tabfirst<CR>
nnoremap <silent> ]T :tablast<CR>
" Внешний вид
set background=dark
"colorscheme iceberg
set ruler
" Настройка статусбара
set statusline=
set statusline+=\ %F
set statusline+=%m\
set statusline+=%=
set statusline+=%#CursorColumn#
set statusline+=\ %Y
set statusline+=\〈\ %{&fileformat}
set statusline+=\ 〈\ %{&fileencoding?&fileencoding:&encoding}
set statusline+=\ 〈\ %p%%
set statusline+=\ 〈\ %l:%c
set statusline+=\
set laststatus=2 " Всегда показываем статусбар