HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
vim-syntastic
syntastic
Vim Script2009–2025
vim-syntastic / syntastic · Archived

syntastic

Syntax checking hacks for vim

23Distinct people
24Mentions
0Explicit recommenders
11.2KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Syntax checking hacks for vim

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year24 dated mentions

Observed mentions: 2009-09-24 22:35:09 UTC to 2025-07-22 00:23:12 UTC.

02462009-01-01 00:00:00 UTC to 2010-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20092010-01-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20092009-01-01 00:00:00 UTC2010-01-01 00:00:00 UTC110
20102010-01-01 00:00:00 UTC2011-01-01 00:00:00 UTC000
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC202
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC615
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC606
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC404
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC000
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC101
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC101
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC110
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
, / \,,_ .'| ,{{| /}}}}/_.' _____________________________________________ }}}}` '{{' '. / \ {{{{{ _ ;, \ / Ladies and Gentlemen, \ ,}}}}}} /o`\ ` ;) | | {{{{{{ / ( | this is ... | }}}}}} | \ | | {{{{{{{{ \ \ | | }}}}}}}}} '.__ _ | | _____ __ __ _ | {{{{{{{{ /`._ (_\ / | / ___/__ ______ / /_____ ______/ /_(_)____ | }}}}}}' | //___/ --=: \__ \/ / / / __ \/ __/ __ `/ ___/ __/ / ___/ | jgs `{{{{` | '--' | ___/ / /_/ / / / / /_/ /_/ (__ ) /_/ / /__ | }}}` | /____/\__, /_/ /_/\__/\__,_/____/\__/_/\___/ | | /____/ | | / \_____________________________________________/ Deprecation note Introduction Installation 3.1. Requirements 3.2. Installing syntastic with Pathogen Recommended settings FAQ 5.1. I installed syntastic but it isn't reporting any errors... 5.2. Syntastic supports several checkers for my filetype, how do I tell it which one(s) to use? 5.3. How can I run checkers for "foreign" filetypes against the current file? 5.4. I have enabled multiple checkers for the current filetype. How can I display all errors from all checkers together? 5.5. How can I pass additional arguments to a checker? 5.6. I run a checker and the location list is not updated... 5.6. I run:lopen or :lwindow and the error window is empty... 5.7. How can I jump between the different errors without using the location list at the bottom of the window? 5.8. The error window is closed automatically when I :quit the current buffer but not when I :bdelete it? 5.9. My favourite checker needs to load a configuration file from the project's root rather than the current directory... 5.10. What is the difference between syntax checkers and style checkers? 5.11. How can I check scripts written for different versions of Python? 5.12. How can I check scripts written for different versions of Ruby? 5.13. The perl checker has stopped working... 5.14. What happened to the rustc checker? 5.15. What happened to the tsc checker? 5.16. What happened to the xcrun checker? 5.17. What happened to the valac checker? 5.18. What happened to the Julia lint checker? Resources 1. Deprecation note This project is no longer maintained. If you need a syntax checking plugin for Vim you might be interested in Syntastic's spiritual succesor, ALE. Although it shares no code with syntastic and it takes a very different approach to design, ALE can be considered a natural evolution of syntastic in terms of goals and functionality. Check it out, you probably won't be disappointed. 2. Introduction Syntastic is a syntax checking plugin for Vim created by Martin Grenfell. It runs files through external syntax checkers and displays any resulting errors to the user. This can be done on demand, or automatically as files are saved. If syntax errors are detected, the user is notified and is happy because they didn't have to compile their code or execute their script to find them. At the time of this writing, syntastic has checking plugins for ACPI Source Language, ActionScript, Ada, Ansible configurations, API Blueprint, AppleScript, AsciiDoc, Assembly languages, BEMHTML, Bro, Bourne shell, C, C++, C#, Cabal, Chef, CMake, CoffeeScript, Coco, Coq, CSS, Cucumber, CUDA, D, Dart, DocBook, Dockerfile, Dust, Elixir, Erlang, eRuby, Fortran, Gentoo metadata, GLSL, Go, Haml, Haskell, Haxe, Handlebars, HSS, HTML, Java, JavaScript, JSON, JSX, LESS, Lex, Limbo, LISP, LLVM intermediate language, Lua, Markdown, MATLAB, Mercury, NASM, Nix, Objective-C, Objective-C++, OCaml, Perl, Perl POD, PHP, gettext Portable Object, Raku, OS X and iOS property lists, Pug (formerly Jade), Puppet, Python, QML, R, Racket, RDF TriG, RDF Turtle, Relax NG, reStructuredText, RPM spec, Ruby, SASS/SCSS, Scala, Slim, SML, Solidity, Sphinx, SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Verilog, VHDL, Vim help, VimL, Vue.js, xHtml, XML, XSLT, XQuery, YACC, YAML, YANG data models, YARA rules, z80, Zope page templates, and Zsh. See the manual for details about the corresponding supported checkers (:help syntastic-checkers in Vim). A number of third-party Vim plugins also provide checkers for syntastic, for example: merlin, omnisharp-vim, rust.vim, syntastic-extras, syntastic-more, tsuquyomi, vim-crystal, vim-eastwood, and vim-swift. Below is a screenshot showing the methods that Syntastic uses to display syntax errors. Note that, in practise, you will only have a subset of these methods enabled. Errors are loaded into the location list for the corresponding window. When the cursor is on a line containing an error, the error message is echoed in the command window. Signs are placed beside lines with errors - note that warnings are displayed in a different color. There is a configurable statusline flag you can include in your statusline config. Hover the mouse over a line containing an error and the error message is displayed as a balloon. (not shown) Highlighting errors with syntax highlighting. Erroneous parts of lines can be highlighted. 3. Installation 3.1. Requirements Syntastic itself has rather relaxed requirements: it doesn't have any external dependencies, and it needs a version of Vim compiled with a few common features: autocmd, eval, file_in_path, modify_fname, quickfix, reltime, statusline, and user_commands. Not all possible combinations of f
Read the full README on GitHub

What Hacker News says

24 sources
Awesome article! You really cover a lot, in a short but easily digestable write-up! It might be a little fast for complete beginners though :/... I've come to be quite happy with my current VIM setup. I'm using, * haskellmode for _t and _T (show and insert types, respectively) [0] * ghc-mod for integration with neco-ghc and syntastic and for running ghc check [1] * neco-ghc [2] * neocomplete that uses neco-ghc, for completion suggestions [3] * syntastic for hlint checking on save [4] [0] https://github.com/lukerandall/haskellmode-vim [1] https://github.com/eagletmt/ghcmod-vim [2] https://github.com/eagletmt/neco-ghc [3] https://github.com/Shougo/neocomplete.vim [4] https://github.com/scrooloose/syntastic/
In How I Start: Haskell
I can recommend VIM with Syntastic[0] and vim2hs[1]. You'd probably also want Vundle to manage plugins though. What I get from that is my code is checked for style/compile errors everytime I save with ghc-mod and hlint. There's also commands to output the type of a function, run haskell code in VIM etc. Note that you need ghc-mod installed for syntastic to take effect though. [0] https://github.com/scrooloose/syntastic [1] https://github.com/dag/vim2hs
In Comparing Haskell Web Frameworks
Managed with https://github.com/gmarik/vundle here are the plugins I'd say I use every day: https://github.com/airblade/vim-gitgutter show git change/deleted lines https://github.com/bling/vim-airline light weight, pure vimscript status line https://github.com/kien/ctrlp.vim fuzzy file finder that mostly works https://github.com/tpope/vim-fugitive very nice Git wrapper https://github.com/scrooloose/syntastic generic in Vim syntax checker plugin https://github.com/sjl/gundo.vim undo tree viewing
In Ask HN: What Vim plugins do you use?
In terms of "pointing out stupid mistakes to you before you try to compile/run your code", which is a very important IDE feature in terms of not wasting your time, you can go pretty far with syntastic[1]. This does not help with verbose languages which need autocompletion (you know the ones I'm talking about), managing import lists or automated refactoring, but it's still really good to have. 1: https://github.com/scrooloose/syntastic
In Plans for Vim 7.4

Showing the 15 most recent of 24 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.