commit 1f100f2166ce6005ab40f82a4188f57a5f64e3ab Author: Andrew Nechaev Date: Wed May 11 23:08:49 2022 +0400 Первая версия vimrc diff --git a/README.md b/README.md new file mode 100644 index 0000000..6103d8b --- /dev/null +++ b/README.md @@ -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` выключает подсветку. + - более удобная подсветка при поиске + - в пути `%%` разворачивается в полный путь до текущего файла + - используется системный буфер. diff --git a/vimrc b/vimrc new file mode 100644 index 0000000..3e37e38 --- /dev/null +++ b/vimrc @@ -0,0 +1,86 @@ +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" File: vimrc +" Maintainer: Andrew Nechaev +" 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 %% getcmdtype() == ':' ? expand('%:h').'/' : '%%' + +" Бинд Ctrl-l на временное выключение подстветки до следующего поиска +nnoremap :nohlsearch +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 * :call VSetSearch('/')/=@/ +xnoremap # :call VSetSearch('?')?=@/ + +" улучшаем переключение между буферами и табами через []{} +nnoremap [b :bprevious +nnoremap ]b :bnext +nnoremap [B :bfirst +nnoremap ]B :blast +nnoremap [t :tabprevious +nnoremap ]t :tabnext +nnoremap [T :tabfirst +nnoremap ]T :tablast + +" Внешний вид +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 " Всегда показываем статусбар