I'm Mariano ๐. I'm a software engineer, passionate about the field.
๐ I'm the author of the book Clean code in Python. I also write about software in my blog.
๐ฌ You can reach out to me at LinkedIn.
Vim configuration
Home Page: http://rmariano.github.io/vim-config
License: MIT License
I'm Mariano ๐. I'm a software engineer, passionate about the field.
๐ I'm the author of the book Clean code in Python. I also write about software in my blog.
๐ฌ You can reach out to me at LinkedIn.
Add splitright and splitbelow to the configuration
http://stackoverflow.com/questions/7912060/vim-how-can-i-open-a-file-at-right-side-as-vsplit-from-a-left-side-nerdtree-pan
wget -O $SYNTAX_DIR/python.vim $REPO_URL/$BRANCH/syntax/python.vim
wget -O $SYNTAX_DIR/Dockerfile.vim $REPO_URL/$BRANCH/syntax/Dockerfile.vim
This 2 files don't appear to be in the repo
Make sure the custom filetype changes do not affect the rest of the open buffers
For example in a string like the following
variable = """some text with {variable1}, and {marker2}""".format(variable1=1, marker2=2)
Here {variable1}
and {marker2}
should be highlighted with a different color (for Python files only), so it becomes clear that they are placeholders for text replacements.
The margin that is currently set for the text wrap limit, on .py files, seems to be causing some issues on files of different formats, because a trailing gray shade can be seen on some lines near the end of files.
This long-standing feature (it was since the beginning of time of this project ๐ญ ), needs revision, and possibly deprecation.
smarttab
and expandtab
should handle this behaviour correctly, so even when using <tab>
there should be no problem. Disabling it also, enables better support for other languages (hello go).
As the project currently has make dev-deploy
for linking to the files for development, there should be a new target called make deploy
that copies the files instead of creating symlinks (override if they already exists; maybe give a warning).
make install
would get the files from the remote repository (wget
from Github), so it only requires the Makefile
to be downloaded. On the other hand, makek deploy
will assume the whole proyect is downloaded, and their required files will be copied to the respective target locations.
Update the documentation with this rationale, and include it in the installation examples ๐
The spell checking is toggle-able with , however it does not show if it is enabled or not.
Show this in the status bar, similar to the one that shows the PASTE mode. It could be used with the green or yellow color.
Move custom configurations (for example Python, markdown, go, etc.) to ~/.vim/ftplugin/<lang>.vim
or even ~/.vim/after/ftplugin/<lang>.vim
, taking advantage of ftplugin
setting.
Update installation target in Makefile.
I had to do bash deploy.sh so the instant one-liner didn't work
Installing develop . Getting the latest version from https://raw.github.com/rmariano/vim-config
/tmp/deploy.sh: 11: /tmp/deploy.sh: [[: not found
/tmp/deploy.sh: 11: /tmp/deploy.sh: [[: not found
The autofix functionality (<F3>
) at
vim-config/after/ftplugin/python.vim
Line 8 in 8c84c69
It's possible then that isort
changes the import order without respecting the limit of the columns, after the pep8 was changing, leaving it in an incorrect state.
Swap the order of the operations.
The page for the project at https://rmariano.github.io/vim-config should render the README as latest documentation.
<leader>+c
comments the current line out, with a #
, as Python comments. This does not include an space after it, according to PEP8. Instead, it should prepend #<space>
Have a mapping (could be <F5>
for example) that automatically fix the Python file in the current buffer by:
Use set makeprg
for running linting checks on Python files.
Like
set makeprg=pylint\ --reports=n\ --output-format=parseable\ %:p
set errorformat=%f:%l:\ %m
from https://stackoverflow.com/questions/3839454/how-to-use-pylint-in-vim
and https://jbernard.io/2011/09/30/vim-makeprg.html
Pros:
pylint
is better linting tool than flake8Cons
Makefile
, and changing the default makeprg=make
might overshadow it, when in fact it is desired to use the Makefile
. Maybe another mapping instead of makeprg
?Check
:help makeprg
:help errorformat
<leader> + c
, ctrl + /
or <leader> + /
Search for the following development tags in the code:
The search must be recursive based on the current directory, and the results should be rendered in the quickfix window, without jumping to the first result (/j flag included).
It's only set for Python files
Line 178 in 9cad215
It should be for all sorts of files, with the consideration that there must be a way of overriding it with a command (for a very unlikely scenario, but still)
Support the new syntax changes of Python 3.6: https://docs.python.org/3/whatsnew/3.6.html
๐
Support *.pyx
files.
<F3>
, <F7>
) should workset autowrite
or set autowriteall
http://vimdoc.sourceforge.net/htmldoc/options.html#'autowrite'
make extras
should automatically install all external plug-ins on the project.
Update documentation accordingly.
Add set nomodeline
to the config.
Security implications.
see https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md
Set an indicator in the status line, that displays "[PASTE]" in white letters over dark red background for when the paste mode is on. If paste is not set, the status line should remain as always.
go fmt
on saving or via a mapping (<F5>
for instance).Move the list of features to an upper section, for easier access and better visibility.
The mapping <leader>tw
is missing. Add it and correct all other features that might be missing.
When a python file is open the margin is properly set to 80 cols. However, when opening a new file (by tabnew
for example), this margin is toggled, and hence it disappears. It should be maitained along python files.
Changes for the next version: 0.10
*.rs
) filesA declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.