Git uses Perl regular expressions
Ack config
Reinstalled ack-vim as a submodule
Add cscope integration

This Emacs tutorial had some interesting ideas integrating GNU Global
with Emacs to browse the Linux kernel source code.

    https://tuhdo.github.io/emacs-tutor.html#sec-8
    1. Find file main.c
    2. Find function kernel_init
    3. Find definition of kernel_init

I've been doing this myself A LOT lately and have been looking for a way
to improve the process. GNU Global integration with Vim is
(unsurprisingly) bad. But Ctags originated as a Vim feature and can do
everything I need except search for a file. Cscope has that case covered
and even appears to integrate well with Vim.

Ctags and cscope don't always play nice together, but I think I have
this figured out.

*** Troubleshooting ***
ctags C-} doesn't work if you run ctags after generating cscope
    E429: File "/path/to/file.c" does not exist
        This fixes it:
        % find ~/Projects/linux_src | egrep -i "\.(c|h|)$" > cscope.files
        % ctags -R . --tag-relative=yes ./
    E567: No cscope connection
        Vim has to start in same root where you run cscope -R
        Or set $CSCOPE_DB environment variable
        $ find `pwd` -name "*.c" -o -name "*.h" -o > cscope.files
        OR
        % find project/dir -name '*.c' -o -name '*.h' > /foo/cscope.files
        % cscope -R -b -k
            # -b rebuild database, -k kernel mode ignore /usr/include
        % export CSCOPE_DB=/foo/cscope.out
Emacs ELPA packages
Tired of seeing .vim/.netrwhist
in history
Neovim config
Removed Cscope Vim integration

I'm tired of fighting with this. Cscope doesn't play nice with Ctags. It
also doesn't use the Quickfix window like it's supposed to, which
defeats the purpose of searching for files from within Vim.

Since the only thing I need Cscope for is to search for a file in
project scope there are uglier but quicker ways to get it done.

Ack and grep are not ideal for this, but they work. I can also just run
cscope from the command line.

Ack
1. :Ack main.c, then use / to search through the quickfix list
    vim-ack is slow; I think quickfix creates a buffer for each search result
    % time ack main.c
        ack main.c  2.53s user 0.17s system 99% cpu 2.705 total
2. /kernel_init
3. Oops, we forgot about ctags!
    % cd linux_src
    % ctags -R .
3. Ctrl-} works now. Unlike cscope, we don't have to restart vim or rebuild db

git-grep
Pretty much same as Ack, except it doesn't integrate with Vim. I have to
type the filename into Vim, same as using Cscope from the command line.

Cscope
1. Build cscope database
    % cscope -R
2. Restart vim from root directory.
3. Search for file: :cs find f main.c
    Cscope integration doesn't use quickfix so you can't search or go to file.
    Type the number you want instead (doesn't always work)
4. Search for kernel_init as before. Except now you'll get an error that init/main.c doesn't exist. You have to generate cscope db in a specific way so it doesn't interfere with ctags.

I spend way more time looking for function definitions than files, so
command line Cscope is looking like the easiest thing to do.
Reinstalled remaining plugins as submodules
Reinstalled gitgutter plugin as submodule

Note to self:

git submodule add URL

Then:

git submodule update

Using git clone or git pull just makes a mess of it.