Code Monkey home page Code Monkey logo

vim-config's Introduction

Hi there ๐Ÿ‘‹

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-config's People

Contributors

rmariano avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

zetsub0u aleperno

vim-config's Issues

missing color files defined in deploy.sh

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

Highlight markers in Python format strings

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.

Column delimiter not working on non-Python files

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.

Remove double-tab ESC mapping

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).

Add new deploy option

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 ๐Ÿ˜„

Display when spell check is enabled

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.

Refactor settings per file type

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.

Autofix Python file

Have a mapping (could be <F5> for example) that automatically fix the Python file in the current buffer by:

  • Formatting with PEP8 automatically
  • Running isort for correcting the imports
  • Run flake8 checks at the end to make sure everything is OK

Analysis of linting with makeprg

โš ๏ธ ANALYSIS to see if it's going to be implemented or not.

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:

  • Get rid of vim-flake8 (one dependency less)
  • pylint is better linting tool than flake8
  • Uses vim as default

Cons

  • Projects rely on their own 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

Multi-line comment

  • Change the shortcut for commenting lines out: instead of <leader> + c, ctrl + / or <leader> + /
  • Support commenting and un-commenting out multiple lines highlighted (single-line comment).
  • Update the documentation.

Search tags recursively among files

Search for the following development tags in the code:

  • TODO
  • FIXME

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).

Support for Cython

Support *.pyx files.

  • Syntax highlighting
  • Syntax check & corrections (<F3>, <F7>) should work

Install extra dependencies

make extras should automatically install all external plug-ins on the project.
Update documentation accordingly.

Paste mode indicator in status line

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.

Support for go

  • run go fmt on saving or via a mapping (<F5> for instance).
  • Configure according to standards (tabs, etc.)

Review missng features in README

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.

Release 0.10

Changes for the next version: 0.10

  • [Python files] Don't auto-wrap text at max length
  • Support for Rust (*.rs) files

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.