A working VIM setup for maintaining Snort configuration files.
Branch: master
Clone or download
Pull request Compare This branch is 4 commits ahead of sploit:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
ftplugin First commit Dec 24, 2013
indent First commit Dec 24, 2013
syntax Highlight preprocessor style rule stubs Dec 26, 2013
README.md Update README.md Nov 2, 2015


This project has been merged into VIM; and I am now the maintainer of the vim filetype=hog

  • Feel free to continue using this however if your vim is out-of-date; not bleeding edge.

Provide better support for Snort configuration files in VIM. Includes

  • Fixed syntax highlighting
  • Automatic indentation following a line continuation ('')
  • Folding of multiline confiugrations (following a line continuation)

To be done:

  • A better README

snort hog Improved vim experience for Snort users.

 ____                   _                     __  ~
/ ___| _ __   ___  _ __| |_   ___ ___  _ __  / _| ~
\___ \| '_ \ / _ \| '__| __| / __/ _ \| '_ \| |_  ~
 ___) | | | | (_) | |  | |_ | (_| (_) | | | |  _| ~
|____/|_| |_|\___/|_|   \__(_)___\___/|_| |_|_|   ~

Version: ALPHA.1
Author: Victor Roemer
Last Changed: March 10, 2013

CONTENTS                                                          *hog-contents*


INTRO                                                                *hog-intro*

Note: This is plugin is only a first-pass.

This plugin aims to improve the experience of modifying Snort configuration
and rule files with Vim. 

Provided features
    * Syntax highlighting (compatible with modern versions of Snort)
    * Automatic indentation
    * Navigation mappings

To make full use of the provided functionality, you'll need the following
configurations in your |vimrc|.

    set nocompatible
    filetype plugin indent on
    syntax on

SYNTAX                                                              *hog-syntax*

This plugin provides syntax highlighting support for modern versions of
Snort's configurations. 

TODO: Fill me out!

Syntax highlighting is defined in the syntax/hog.vim file. 

INDENTATION                                                         *hog-indent*

Snort configurations, while usually spanning a single line, can span multiple
lines with the use of the line-continuation character '\'.

For example:

    preprocessor stream5_global: \
        track_tcp yes, track_udp no

Upon encountering a line-continuation character, Snort reads past any whitespace,
comments, empty lines and lines only containing comments.

For example, the following configurations are identical:

    preprocessor stream5_global: \ # This is a comment
        #  track_tcp no, track_udp yes
        track_tcp yes, track_udp no

    preprocessor stream5_global: track_tcp yes, track_udp no

This plugin provides intelligent indentation when encountering line-continuations.

TODO: Examples!

NAVIGATION                                                      *hog-navigation*

The following motions are provided for navigating while in normal mode.

|]]|                      [count] sections forward or to the next config. 

|[[|                      [count] sections backward or to the previous config.

If the matchit plugin is installed (See |matchit-install), the following
motion is enabled by default:

|%|                       Find the end of the config line. (This motion spans