Compare commits

..

No commits in common. "925010f10d883ef102b7c1df55eb68314db0b1eb" and "13a7e3860d82548ca3ec36ca3998701ebb44a16f" have entirely different histories.

3 changed files with 65 additions and 42 deletions

View File

@ -4,60 +4,89 @@ I'm trying to document my neovim setup. Mostly, I'm using neovim to edit
markdown, HTML, CSS/SCSS and python files. markdown, HTML, CSS/SCSS and python files.
I'm using `vim-plug` as a plugin manager. To install and activate `vim-plug` I'm using `vim-plug` as a plugin manager. To install and activate `vim-plug`
see the [documentation][7]. see the [documentation][1].
I'm using the [nord color scheme][5].
## To do ## To do
- [x] Document how to use `pyenv` to provide a python engine. - [x] Document how to use `pyenv` to provide a python engine.
- [x] Identify the python package dependencies. - [ ] Identify the python package dependencies.
- `jedi`.
- `jedi-language-server`.
- `flake8`.
- `neovim`.
- `pycodestyle`.
- `pyflakes`.
- `pynvim`.
## Requirements ## Requirements
1. `neovim` 1. `neovim`
1. `git` 1. `git`
1. A python virtualenv with python dependencies installed. (see [pyenv
section][10]).
1. `nodejs`, `yarn` 1. `nodejs`, `yarn`
1. [vim-plug][1] 1. [vim-plug][1]
1. [ripgrep][2] 1. [ripgrep][2]
1. [The Silver Searcher (`ag`)][3] 1. [The Silver Searcher (`ag`)][3]
1. `grammalecte`, the python standalone program.
1. All or any of these python linters: `pep8`, `flake8`, `pycodestyle`,
`pyflakes`.
1. `scss_lint` (ruby), for SCSS lint.
1. A [font patched for nerds][8]. 1. A [font patched for nerds][8].
## Installation ## Installation
1. Check [the requirements][4]. ⬆ 1. Clone the repository.
1. Clone the repository \ 1. Create a symlink.
`git clone <URL>` 1. Check [the requirements][4].
1. Create a symlink: \ - [Install `vim-plug`][7].
`ln /path/neovim/init.vim /home/user/.config/nvim/init.vim`.
1. [Install `vim-plug`][7].
1. Start `neovim`. 1. Start `neovim`.
1. Install the plugins (`:PlugInstall`). 1. Install the plugins (`:PlugInstall`).
## Create a virtualenv with pyenv ``` bash
git clone <URL>
ln -s neovim .config/neovim
nvim
:PlugInstall
```
Benefit: having a separate virtual environment for the python engine than the ## External configuration
one your working into.
In order to improve the `fzf` preview window display, it's possible to
configure it through the following `env` variable:
```bash
export FZF_DEFAULT_OPTS="--preview='bat --style=numbers --color=always --line-range :500 {}' \
--border \
--color 'border:#4c566a,info:#4c566a,pointer:#88c0d0,prompt:#5e81ac,bg+:#3b4252,hl:#a3be8c'"
```
See the `fzf` documentation: <https://github.com/junegunn/fzf#preview-window>
## Provide an virtual environment for python engine
Benefit: having a separate virtual environment for your editor than the one
your working into.
Install `pyenv` with the [`pyenv-installer`][9]. Install `pyenv` with the [`pyenv-installer`][9].
Install the python version you need with `pyenv`: Install the python version you need with `pyenv`:
```bash ```bash
pyenv install <python version> pyenv install 3.9.9
``` ```
Create and name the virtual environment for neovim: Create and name the virtual environment for neovim:
```bash ```bash
pyenv virtualenv <python version> neovim pyenv virtualenv 3.9.9 neovim
``` ```
Activate the virtual environment and fetch the python path: Activate the virtual environment and fetch the python path:
```bash ```bash
pyenv activate neovim pyenv activate neovim
pyenv which python # Note the provided path pyenv which python #Note the provided path
``` ```
Add the following line to your `init.vim`: Add the following line to your `init.vim`:
@ -69,7 +98,7 @@ let g:python3_host_prog = '/full/path/to/neovim/bin/python
Install the python dependencies in the virtual environment as it is activated: Install the python dependencies in the virtual environment as it is activated:
```bash ```bash
pip install -r requirements.txt pip install neovim pynvim …
``` ```
To deactivate the virtual environment: To deactivate the virtual environment:
@ -86,4 +115,3 @@ pyenv deactivate
[7]: https://github.com/junegunn/vim-plug#installation [7]: https://github.com/junegunn/vim-plug#installation
[8]: https://www.github.com/ryanoasis/nerd-fonts [8]: https://www.github.com/ryanoasis/nerd-fonts
[9]: https://github.com/pyenv/pyenv-installer [9]: https://github.com/pyenv/pyenv-installer
[10]: #create-a-virtualenv-with-pyenv

View File

@ -27,6 +27,7 @@ Plug 'tpope/vim-fugitive' " Gi
Plug 'Xuyuanp/nerdtree-git-plugin' " To see new or modified files in the nerdtree window Plug 'Xuyuanp/nerdtree-git-plugin' " To see new or modified files in the nerdtree window
Plug 'https://github.com/editorconfig/editorconfig-vim' " Support of '.editorconfig' files Plug 'https://github.com/editorconfig/editorconfig-vim' " Support of '.editorconfig' files
Plug 'shmargum/vim-sass-colors' " Highlight sass/scss/less/css colors and color variables Plug 'shmargum/vim-sass-colors' " Highlight sass/scss/less/css colors and color variables
Plug 'vim-syntastic/syntastic' " Syntax checking (linting)
" Auto completion " Auto completion
Plug 'neoclide/coc.nvim', {'branch': 'release'} Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'pappasam/coc-jedi', { 'do': 'yarn install --frozen-lockfile && yarn build' } "Python, using jedi Plug 'pappasam/coc-jedi', { 'do': 'yarn install --frozen-lockfile && yarn build' } "Python, using jedi
@ -117,8 +118,6 @@ au FileType json set shiftwidth=2
autocmd FileType html set tabstop=2 autocmd FileType html set tabstop=2
autocmd FileType html set softtabstop=2 autocmd FileType html set softtabstop=2
autocmd FileType html set shiftwidth=2 autocmd FileType html set shiftwidth=2
au FileType xml setlocal foldmethod=indent
autocmd FileType xml set foldlevel=2
" XML " XML
let g:xml_syntax_folding=3 let g:xml_syntax_folding=3
@ -155,6 +154,24 @@ nnoremap <C-h> :call pandoc#formatting#UseHardWraps()
nnoremap <C-t> :call pandoc#formatting#ToggleAutoformat() nnoremap <C-t> :call pandoc#formatting#ToggleAutoformat()
let g:mkdp_filetypes = ['markdown', 'pandoc', 'pandoc.markdown'] let g:mkdp_filetypes = ['markdown', 'pandoc', 'pandoc.markdown']
" #########################################
" #########################################
" Linters (syntastic configuration)
"
" SCSS linter
let g:syntastic_scss_checkers = ['scss_lint']
" Python linters. I define this list mainly to avoid pylint which I can't
" manage to use correctly and is required on my main OS.
let g:syntastic_python_checkers=['flake8', 'pep8', 'pycodestyle', 'pyflakes']
" Copy pasting of the basic configuration recommended by syntastic
" https://github.com/vim-syntastic/syntastic#settings
" but without the statusline settings to improve comptability with airline.
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
" ######################################### " #########################################
" ######################################### " #########################################
" autocompletion, mainly coc configuration " autocompletion, mainly coc configuration

View File

@ -1,22 +0,0 @@
certifi
charset-normalizer
docstring-to-markdown
flake8
greenlet
idna
jedi
jedi-language-server
mccabe
msgpack
neovim
parso
pycodestyle
pydantic
pyflakes
pygls
pygrammalecte
pynvim
requests
typeguard
typing_extensions
urllib3