
Часто мы тратим время на включение редакторов больше, чем тратим на исправление или написание какого-то однострочного скрипта. Я считаю что эту проблему можно быстро решить, ведь для этого и существуют консольные редакторы
Предистория
Каждый опытный программист печётся о том, как бы побыстрее закончить начатую им работу. Очень часто заказчик не понимает сколько времени и труда тратят разработчики.
Я как учащийся понимаю, что 2 года в программировании — ничего, ибо люди работают по 10 лет и едва ли получают звания Сеньоров, ибо в наше время нужно знать всё больше и больше. Главный инструмент опытныго или начинающего разработчика — редактор кода. Именно он позволяет сэкономить время и как можно быстрее приступить к изучению материала.
Всегда приятно, когда ты можешь "летать" по коду. Ты знаешь что и где находится, а если не знаешь, то можешь найти. Именно это предает нам сил и оперативности в разработке.
Какой же редактор выбрать?
Редакторов в 2020 году существует огромное количество: VSCode, Sublime text, Atom, Vim, Neovim, Emacs, NotePad++, Brackets, Nano и ещё многие другие.
Почему именно ваше внимание должен привлечь NeoVim?
Я думаю, что отвечу на этот вопрос быстро. Вне зависимости от того, на какой ОС вы работаете, вы всегда сталкивались с проблемой "Чёрт, сейчас надо быстро написать (или исправить) небольшой кусок кода" и тут начинается… Вы открываете редактор (пусть это будет VSCode) он включается через 5 секунд, прогружается ещё 3 секунды, открывает папку с файлом 2 секунд, (предположим что пишем что-то на Python, для простоты примера) загружает обновления для дополнений и сами дополнения около 10 секунд. Вы только что потратили 20 секунд своей жизни (при условии что сборка ПК у вас средняя, допустим что это будет ноутбук, который просто удобно использовать не только дома) чтобы написать или исправить какую-то мелочь.
Теперь посмотрим на ситуацию с другой стороны: открыть терминал — секунда ровно, открыть NeoVim с дополнениями — секунда. 2 секунды итого (или 5, если не особо торопиться). NeoVim открывает большие файлы за секунды. Он удобен в использовании. Многие скажут вам: "Это апдейт Vim’а, из которого я даже выйти не могу" — на что я отвечу вам, что эти хоткеи — лучшее, что дал Бог людям.
Кратко о передвижении и хоткеях NeoVim
j — вниз
k — вверх
h — влево
l — вправо
Редактирование
i — войти в режим редактирования с текущего положения курсора (insert)
a — войти в режим редактирования со следующего символа (append)
I — войти в режим редактирования с начала строки
A — войти в режим редактирования с конца строки
dd — удалить строку (delete)
dw — удалить слово (delete a word)
dl — удалить символ (delete a letter)
o — режим редактирования (insert) на новой строке, что ниже данной
O — режим редактирования на новой строке, что выше данной
Также, каждый delete можно совмещать с цифрой: 7dl — удалит 7 символов
Чтобы скопировать что-то нужно перейти в режим visual и выделить что нужно скопировать, а затем нажать y (yank)
p — вставить из буфера (внутреннего) (paste)
Перемещение
w — переместиться на начало следущего слова (word)
W — переместиться на начало следующего слова пропуская скобки, кавычки и далее
b — переместить в начало слова (или начало предыдущего слова) (скобки, кавычки считаются за слово) (backword)
B — переместиться в начало слова (Скобки, кавычки не считаются за слово)
e — перейти в конец слова (следующего слова) (end of the word)
E — перейти в конец слова (после скобок и всего прочего)
gg — перейти в начало файла
G — перейти в конец документа
^ — начало строки
$ — конец строки
/ — поиск внизу файла (n — для следующего найденного; N — для предыдущего найденного)
? — поиск вверху файла
После просмотра этих скучных комбинаций клавиш
Теперь представьте, вы можете перемещаться по коду через 50 слов сразу, нажав 3 клавиши. Вам не нужно целиться мышкой по тегам или операторам. Вы можете сразу просто взять и перепрыгнуть куда вам нужно. Поиск — одна клавиша, а не Ctrl+F, как это придумано везде. До стрелок впредь не нужно тянуться.
Хвастовство

Только благодаря NeoVim я смог увелеичить свою производительность в 3-4 раза (естественно, относительно времени). NeoVim — легкий способ писать код и не только. Многие как будто намеренно нагоняют сложность на все Vim-подобные редакторы. Я же наоборот хочу убедить читателя, что нет ничего такого, в том чтобы что-то выучить, а затем использовать это эффективно.
Было бы нечестно если бы я не указал ссылку на этот замечательный редактор
//Ссылка не открывается, добавляю GitHub проекта — прим. модератора
Как говорил Тим Бернерс-Ли:
Магия перестаёт существовать после того, как вы понимаете, как она работает.
На всякий случай оставлю тут конфигурацию, которую я использую:
call plug#begin() " FuzzyFinder (для быстрого поиска) Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } Plug 'junegunn/fzf.vim' " NERDTree - быстрый просмотр файлов Plug 'preservim/nerdtree' " Сoc - автодополнение Plug 'neoclide/coc.nvim', {'branch': 'release'} " Дополнения для NERDTree Plug 'tiagofumo/vim-nerdtree-syntax-highlight' Plug 'scrooloose/nerdcommenter' " Дополнение для Git, а также иконки для NERDTree Plug 'airblade/vim-gitgutter' Plug 'ryanoasis/vim-devicons' " Линия статуса Plug 'itchyny/lightline.vim' " Темы Plug 'joshdick/onedark.vim' Plug 'cocopon/iceberg.vim' " Проверка Синтаксиса Plug 'scrooloose/syntastic' " Плагин автозавершения "Plug 'Valloric/YouCompleteMe' " Поддержка Python "Plug 'klen/python-mode' call plug#end() " Делаем Vim более функциональным set nocompatible set t_Co=256 " Делаем линейку для показывания на какой мы строке и сколько расстояния до " друних строк в **NeoVim** set number set ruler " Комбинация клавиш jkl - действует как Escape в режиме Insert inoremap jkl <ESC> " Делаем так, чтобы навигация работала на русском языке nmap о j nmap л k nmap р h nmap д l nmap ш i nmap ф a nmap в d " В нормальном режиме Ctrl+n вызывает :NERDTree nmap <C-n> :NERDTreeToggle<CR> vmap ++ <plug>NERDCommenterToggle nmap ++ <plug>NERDCommenterToggl let g:NERDTreeGitStatusWithFlags = 1 let g:NERDTreeIgnore = ['^node_modules$'] " Тема для **NeoVim** syntax on colorscheme iceberg " Линия статуса: конфигурация set noshowmode " Табличка --INSERT-- больше не выводится на экран set laststatus=2 let g:lightline = { \ 'colorscheme': 'iceberg', \ 'active': { \ 'left': [ [ 'mode', 'paste' ], \ [ 'gitbranch', 'readonly', 'filename', 'modified' ] ] \ }, \ 'component_function': { \ 'gitbranch': 'fugitive#head' \ }, \ }
ссылка на оригинал статьи https://habr.com/ru/post/486948/
Добавить комментарий