{"id":13791944,"url":"https://github.com/alexandregv/norminette-vim","last_synced_at":"2026-03-01T19:18:16.145Z","repository":{"id":98973442,"uuid":"311139098","full_name":"alexandregv/norminette-vim","owner":"alexandregv","description":"42 norminette (linter) for vim","archived":false,"fork":false,"pushed_at":"2024-05-10T21:29:34.000Z","size":93,"stargazers_count":89,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-12T14:32:30.271Z","etag":null,"topics":["linter","neovim","vim"],"latest_commit_sha":null,"homepage":"","language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexandregv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-08T19:33:17.000Z","updated_at":"2025-05-10T23:37:12.000Z","dependencies_parsed_at":"2024-11-18T09:30:48.375Z","dependency_job_id":null,"html_url":"https://github.com/alexandregv/norminette-vim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alexandregv/norminette-vim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandregv%2Fnorminette-vim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandregv%2Fnorminette-vim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandregv%2Fnorminette-vim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandregv%2Fnorminette-vim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexandregv","download_url":"https://codeload.github.com/alexandregv/norminette-vim/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandregv%2Fnorminette-vim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29981389,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T16:35:47.903Z","status":"ssl_error","status_checked_at":"2026-03-01T16:35:44.899Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linter","neovim","vim"],"created_at":"2024-08-03T22:01:06.167Z","updated_at":"2026-03-01T19:18:16.126Z","avatar_url":"https://github.com/alexandregv.png","language":"Vim Script","funding_links":[],"categories":["Resources","Tools"],"sub_categories":["Text Editors/IDEs","Editor Extensions"],"readme":"# norminette-vim\n\n42 norminette (linter) for vim. It shows norm errors directly in vim, no more switching between vim and norminette.\n\nSupports both Norm version 2 and Norm version 3.\n\n![Screenshot](screenshot.jpg)\n\n## Installation\n\nnorminette-vim needs [syntastic](https://github.com/vim-syntastic/syntastic) and the [norminette](https://github.com/42School/norminette) to work.  \nYou will need a plugin manager to install syntastic and norminette-vim. I recommend [vim-plug](https://github.com/junegunn/vim-plug).  \n\n1. If you are not on a 42 mac, install the [norminette](https://github.com/42School/norminette).\n2. Install syntastic and norminette-vim with your plugin manager. See exemple below.\n\nWith vim-plug, add this to the beginning of your `~/.vimrc` (or `~/.config/nvim/init.vim` for neovim):\n```vim\ncall plug#begin()\n\nPlug 'vim-syntastic/syntastic'\nPlug 'alexandregv/norminette-vim'\n\ncall plug#end()\n```\nthen restart vim and run `:PlugInstall`\n\n3. Copy the [configuration](#configuration) to your `~/.vimrc` (or `~/.config/nvim/init.vim` for neovim). Note that **first line is mandatory**.\n\n## Configuration\n\nHere is the configuration I recommend. **You at least need the first line to enable the checker.**\n```vim\n\" Enable norminette-vim (and gcc)\nlet g:syntastic_c_checkers = ['norminette', 'gcc']\nlet g:syntastic_aggregate_errors = 1\n\n\" Set the path to norminette (do no set if using norminette of 42 mac)\nlet g:syntastic_c_norminette_exec = 'norminette'\n\n\" Support headers (.h)\nlet g:c_syntax_for_h = 1\nlet g:syntastic_c_include_dirs = ['include', '../include', '../../include', 'libft', '../libft/include', '../../libft/include']\n\n\" Pass custom arguments to norminette (this one ignores 42header)\nlet g:syntastic_c_norminette_args = '-R CheckTopCommentHeader'\n\n\" Check errors when opening a file (disable to speed up startup time)\nlet g:syntastic_check_on_open = 1\n\n\" Enable error list\nlet g:syntastic_always_populate_loc_list = 1\n\n\" Automatically open error list\nlet g:syntastic_auto_loc_list = 1\n\n\" Skip check when closing\nlet g:syntastic_check_on_wq = 0\n```\n\n## Norm version\n\nTo select the Norm version (2 or 3), just set `g:syntastic_c_norminette_exec` to the right norminette path.  \n- For v2 ([42Paris/norminette](https://github.com/42Paris/norminette)), it is probably `~/.norminette/norminette.rb`.  \n- For v3 ([42School/norminette](https://github.com/42School/norminette)), `norminette` should be enough if you installed it correctly.  \nMake sure that the `norminette` executable is available in your PATH. Check it with `whereis norminette` and `type -a norminette`.  \nIf not found, make sure that Python's bin directory is in your PATH. Get it with `python3 -m site` or `python -m site`.\n\n## Usage\n\nOpen any `.c` file and you should see your norm errors (if any!).  \nYou can open the error list with `:Errors`\n\n## Don't want to bother with this syntastic/plugins stuff? Check this\n\nVim has a native feature (vim-compiler and quickfix) which gives almost the same result. It basically just lacks the (sweet) line indicators on the left side.\n\n1. `git clone https://github.com/alexandregv/norminette-vim ~/.vim/pack/syntax/start/norminette-vim`\n2. Open a `.c` file and run `:Norminette`\n\nIf needed, you can specify norminette path by adding `let g:norminette_exec = '~/.norminette/norminette.rb'` to your `~/.vimrc` (or `~/.config/nvim/init.vim` for neovim).\n\n## See also\n\n* [norminette-action](https://github.com/alexandregv/norminette-action) - GitHub Action (CI) to test norminette after each push, automatically.\n* [norminette-action-demo](https://github.com/alexandregv/norminette-action-demo) - Demo repository for norminette-action.\n* [norminette-docker](https://github.com/alexandregv/norminette-docker) - A docker image for norminette. Used by norminette-action.\n\nAll of these are compatible with Norm version 2 and 3.\n\n## Stargazers over time\n[![Stargazers over time](https://starchart.cc/alexandregv/norminette-vim.svg?variant=adaptive)](https://starchart.cc/alexandregv/norminette-vim)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandregv%2Fnorminette-vim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexandregv%2Fnorminette-vim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandregv%2Fnorminette-vim/lists"}