HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>15 ноя 2021</li>
2 <ul><li>15 ноя 2021</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Какие дополнения и зачем ставить, как их настроить.</p>
4 </ul><p>Какие дополнения и зачем ставить, как их настроить.</p>
5 <p>evgeniy kornilov / shutterstock</p>
5 <p>evgeniy kornilov / shutterstock</p>
6 <p>Переводчик, специалист по авиационной безопасности, начинающий веб-разработчик. Убеждён, что любой человек может сочетать абсолютно разные интересы и сферы профессиональной деятельности, ведь наши возможности безграничны.</p>
6 <p>Переводчик, специалист по авиационной безопасности, начинающий веб-разработчик. Убеждён, что любой человек может сочетать абсолютно разные интересы и сферы профессиональной деятельности, ведь наши возможности безграничны.</p>
7 <p><strong><strong>об авторе</strong></strong></p>
7 <p><strong><strong>об авторе</strong></strong></p>
8 <p>Разработчик-стажёр в Facebook*. Работает над приложением Chai и рассказывает о нём в блоге. Живёт в Лондоне.</p>
8 <p>Разработчик-стажёр в Facebook*. Работает над приложением Chai и рассказывает о нём в блоге. Живёт в Лондоне.</p>
9 <p>Vim (или<a>Neovim</a>) - мой любимый текстовый редактор и IDE. Мне нравится его хорошая настраиваемость, большой набор плагинов, удобный терминал и логичный язык команд.</p>
9 <p>Vim (или<a>Neovim</a>) - мой любимый текстовый редактор и IDE. Мне нравится его хорошая настраиваемость, большой набор плагинов, удобный терминал и логичный язык команд.</p>
10 <ul><li><a>junegunn/vim-plug</a> - очень популярный менеджер плагинов, в котором нет ничего лишнего;</li>
10 <ul><li><a>junegunn/vim-plug</a> - очень популярный менеджер плагинов, в котором нет ничего лишнего;</li>
11 <li><a>tpope/vim-commentary</a> - позволяет закомментировать код: командой gcc - строку, а командой gc - выделенный фрагмент в визуальном режиме (когда работает мышка);</li>
11 <li><a>tpope/vim-commentary</a> - позволяет закомментировать код: командой gcc - строку, а командой gc - выделенный фрагмент в визуальном режиме (когда работает мышка);</li>
12 <li><a>jeetsukumaran/vim-pythonsense</a> - включает поддержку привычных для Python текстовых объектов, а также команды, которые помогут перемещаться по файлу;</li>
12 <li><a>jeetsukumaran/vim-pythonsense</a> - включает поддержку привычных для Python текстовых объектов, а также команды, которые помогут перемещаться по файлу;</li>
13 <li><a>junefunn/fzf</a> - поможет молниеносно найти файл, используя нечёткий поиск (fuzzy search). (<a>А вообще, fzf умеет гораздо больше</a>.)</li>
13 <li><a>junefunn/fzf</a> - поможет молниеносно найти файл, используя нечёткий поиск (fuzzy search). (<a>А вообще, fzf умеет гораздо больше</a>.)</li>
14 </ul><ul><li><a>scrooloose/nerdtree</a> - это файловый менеджер, работающий в редакторе Vim;</li>
14 </ul><ul><li><a>scrooloose/nerdtree</a> - это файловый менеджер, работающий в редакторе Vim;</li>
15 </ul>NERDTree. Скриншот: сайт<a>Github</a><ul><li><a>liuchengxu/vista.vim</a> - находит и подсвечивает символы LSP, а также выводит обзор классов, функций и методов вашего проекта.</li>
15 </ul>NERDTree. Скриншот: сайт<a>Github</a><ul><li><a>liuchengxu/vista.vim</a> - находит и подсвечивает символы LSP, а также выводит обзор классов, функций и методов вашего проекта.</li>
16 </ul><ul><li><a>Vimjas/vim-python-pep8-indent</a> - плагин для автоматической расстановки отступов в коде ✨</li>
16 </ul><ul><li><a>Vimjas/vim-python-pep8-indent</a> - плагин для автоматической расстановки отступов в коде ✨</li>
17 </ul>Было - стало 😍 Скриншот:<a>GitHub</a><p>Ещё один способ настроить отступы - это добавить в файл .vimrc строчку:</p>
17 </ul>Было - стало 😍 Скриншот:<a>GitHub</a><p>Ещё один способ настроить отступы - это добавить в файл .vimrc строчку:</p>
18 set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab<p>Если что, линтинг - это проверка синтаксиса :)</p>
18 set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab<p>Если что, линтинг - это проверка синтаксиса :)</p>
19 <p>С Vim совместимо много отличных расширений для линтинга и исправления кода. Мои любимчики - это Syntastic и ALE, оба прекрасно справляются со своей задачей.</p>
19 <p>С Vim совместимо много отличных расширений для линтинга и исправления кода. Мои любимчики - это Syntastic и ALE, оба прекрасно справляются со своей задачей.</p>
20 <p>Но можно установить и другие удобные инструменты - вот так:</p>
20 <p>Но можно установить и другие удобные инструменты - вот так:</p>
21 pip install pycodestyle | python style guide checker pip install vulture | finds ‘dead’/unused code pip install pylint | Linting<p><a>vim-syntastic/syntastic</a>очень популярен, но работает синхронно, из-за чего возможны лаги интерфейса.</p>
21 pip install pycodestyle | python style guide checker pip install vulture | finds ‘dead’/unused code pip install pylint | Linting<p><a>vim-syntastic/syntastic</a>очень популярен, но работает синхронно, из-за чего возможны лаги интерфейса.</p>
22 <p>Syntastic невероятно просто установить, настроить и применять. Я работала с ним три года: он очень мне понравился.</p>
22 <p>Syntastic невероятно просто установить, настроить и применять. Я работала с ним три года: он очень мне понравился.</p>
23 <p><a>ALE</a> - это ещё один крутой линтер и корректор кода. Он настолько классный, что с ним я почти позабыла Syntastic.</p>
23 <p><a>ALE</a> - это ещё один крутой линтер и корректор кода. Он настолько классный, что с ним я почти позабыла Syntastic.</p>
24 <p>Когда вы наводите курсор на строку с ошибкой, ALE выводит внизу экрана сообщение: объясняет, в чём ошибка и как её исправить. А чтобы увидеть все проблемы, достаточно выполнить команду :lopen.</p>
24 <p>Когда вы наводите курсор на строку с ошибкой, ALE выводит внизу экрана сообщение: объясняет, в чём ошибка и как её исправить. А чтобы увидеть все проблемы, достаточно выполнить команду :lopen.</p>
25 <p>Настраивать ALE можно как душа желает. Вот как я настроила свой:</p>
25 <p>Настраивать ALE можно как душа желает. Вот как я настроила свой:</p>
26 let g:ale_linters = {'python': 'all'} let g:ale_fixers = {'python': ['isort', 'yapf', 'remove_trailing_lines', 'trim_whitespace']} let g:ale_lsp_suggestions = 1 let g:ale_fix_on_save = 1 let g:ale_go_gofmt_options = '-s' let g:ale_go_gometalinter_options = '- enable=gosimple - enable=staticcheck' let g:ale_completion_enabled = 1 let g:ale_echo_msg_error_str = 'E' let g:ale_echo_msg_warning_str = 'W' let g:ale_echo_msg_format = '[%linter%] [%severity%] %code: %%s'<p>Вдобавок я отключила предупреждения о стилистических погрешностях. Делается это в файле .pylintrc. Создайте его командой: pylint --generate-rcfile &gt; ~/.pylintrc (вместо ~/ укажите расположение будущего файла 😊).</p>
26 let g:ale_linters = {'python': 'all'} let g:ale_fixers = {'python': ['isort', 'yapf', 'remove_trailing_lines', 'trim_whitespace']} let g:ale_lsp_suggestions = 1 let g:ale_fix_on_save = 1 let g:ale_go_gofmt_options = '-s' let g:ale_go_gometalinter_options = '- enable=gosimple - enable=staticcheck' let g:ale_completion_enabled = 1 let g:ale_echo_msg_error_str = 'E' let g:ale_echo_msg_warning_str = 'W' let g:ale_echo_msg_format = '[%linter%] [%severity%] %code: %%s'<p>Вдобавок я отключила предупреждения о стилистических погрешностях. Делается это в файле .pylintrc. Создайте его командой: pylint --generate-rcfile &gt; ~/.pylintrc (вместо ~/ укажите расположение будущего файла 😊).</p>
27 <p>ALE поддерживает автозавершение кода. Но не только он.</p>
27 <p>ALE поддерживает автозавершение кода. Но не только он.</p>
28 <p>Если вы уже установили ALE, но будете пользоваться другим плагином для автодополнения, не забудьте отключить эту функцию у ALE. Делается это в том же файле .vimrc:</p>
28 <p>Если вы уже установили ALE, но будете пользоваться другим плагином для автодополнения, не забудьте отключить эту функцию у ALE. Делается это в том же файле .vimrc:</p>
29 let g:ale_completion_enabled = 0<p><a>davidhalter/jedi-vim</a>добавляет автозавершение кода на Python. За основу взят Jedi, языковой сервер Python.</p>
29 let g:ale_completion_enabled = 0<p><a>davidhalter/jedi-vim</a>добавляет автозавершение кода на Python. За основу взят Jedi, языковой сервер Python.</p>
30 <p>Я использую плагин автозавершения coc.nvim вместе с coc-jedi - coc.nvim-оболочкой для<a>jedi-language-server</a>😊</p>
30 <p>Я использую плагин автозавершения coc.nvim вместе с coc-jedi - coc.nvim-оболочкой для<a>jedi-language-server</a>😊</p>
31 <ul><li><a>neoclide/coc.nvim</a> - это движок интеллектуального анализа кода. Чтобы поддерживался LSP, установите CoC-расширение или настройте языковой сервер. (Обязательно должен стоять Node.js.)</li>
31 <ul><li><a>neoclide/coc.nvim</a> - это движок интеллектуального анализа кода. Чтобы поддерживался LSP, установите CoC-расширение или настройте языковой сервер. (Обязательно должен стоять Node.js.)</li>
32 <li><a>pappasam/coc-jedi</a> - ещё одно расширение для Python. Установите его командой :CocInstall coc-jedi после coc.nvim и jedi-language-server.</li>
32 <li><a>pappasam/coc-jedi</a> - ещё одно расширение для Python. Установите его командой :CocInstall coc-jedi после coc.nvim и jedi-language-server.</li>
33 </ul><p>Вот отличная статья о том, что хорошего в CoC и почему стоит применять coc-jedi: "<a>Как написать расширение для coc.nvim</a>".</p>
33 </ul><p>Вот отличная статья о том, что хорошего в CoC и почему стоит применять coc-jedi: "<a>Как написать расширение для coc.nvim</a>".</p>
34 <p><a>ycm-core/YouCompleteMe</a>использует Jedi. Код автодополняется по мере ввода. Кроме Python поддерживается много других языков.</p>
34 <p><a>ycm-core/YouCompleteMe</a>использует Jedi. Код автодополняется по мере ввода. Кроме Python поддерживается много других языков.</p>
35 Пример работы YouCompleteMe. Источник:<a>GitHub</a><p>Ура! Мы превратили Vim в отличную IDE для Python.</p>
35 Пример работы YouCompleteMe. Источник:<a>GitHub</a><p>Ура! Мы превратили Vim в отличную IDE для Python.</p>
36 <p>Тсс… всем, кто любит мышку: в Neovim она включается командой :set mouse=a 🐭</p>
36 <p>Тсс… всем, кто любит мышку: в Neovim она включается командой :set mouse=a 🐭</p>
37 <p>* Решением суда запрещена "деятельность компании Meta Platforms Inc. по реализации продуктов - социальных сетей Facebook* и Instagram* на территории Российской Федерации по основаниям осуществления экстремистской деятельности".</p>
37 <p>* Решением суда запрещена "деятельность компании Meta Platforms Inc. по реализации продуктов - социальных сетей Facebook* и Instagram* на территории Российской Федерации по основаниям осуществления экстремистской деятельности".</p>
38 <a>Научитесь: Администрирова­ние ОС Linux Узнать больше</a>
38 <a>Научитесь: Администрирова­ние ОС Linux Узнать больше</a>