All I was trying to do is enable syntax highlighting on my local machine that matches the syntax highlighting on my remote. I googled around and someone explained that all that was needed was a modification to the local .vimrc file. Somehow, though, I think I have managed to screw up vim.

I try to open vim:

username ~ $ vim
Error detected while processing /Users/username/.vimrc:
line   52:
E33: No previous substitute regular expression
Press ENTER or type command to continue

Pressing enter opens vim, but I'd still like to resolve this error.

Then I cd'd into the proper directory:

username ~ $ cd /Users/username
username ~ $ vim .vimrc
Error detected while processing /Users/username/.vimrc:
line   52:
E33: No previous substitute regular expression
Press ENTER or type command to continue

I press enter, and then I get my .vimrc file (I copy/pasted the vimrc file that has the syntax highlighting I want from a remote (Linux) to my local (Mac), which might be the issue but I'm too much of a n00b to understand why):

" All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by
" the call to :runtime you can find below.  If you wish to change any of those
" settings, you should do it in this file (/etc/vim/vimrc), since debian.vim
" will be overwritten everytime an upgrade of the vim packages is performed.
" It is recommended to make changes after sourcing debian.vim since it alters
" the value of the 'compatible' option.

" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
runtime! debian.vim

" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
"set compatible

" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
if has("syntax")
  syntax on
" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"set background=dark

" Uncomment the following to have Vim jump to the last position when
" reopening a file
"if has("autocmd")
"  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif

" Uncomment the following to have Vim load indentation rules and plugins
" according to the detected filetype.
"if has("autocmd")
"  filetype plugin indent on

" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
"set showcmd            " Show (partial) command in status line.
"set showmatch          " Show matching brackets.
"set ignorecase         " Do case insensitive matching
"set smartcase          " Do smart case matching
"set incsearch          " Incremental search
"set autowrite          " Automatically save before commands like :next and :make
"set hidden             " Hide buffers when they are abandoned
"set mouse=a            " Enable mouse usage (all modes)
:set shiftwidth=4
:set autoindent
:set smartindent
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
  source /etc/vim/vimrc.local

So I have two questions here: how can I enable syntax highlighting, and how can I fix whatever it is that I screwed up?

  • 1
    Avoid asking two questions. I'm mainly addressing the issue with the error starting Vim. If syntax highlighting still doesn't work, please post a new separate question, including more details of what you attempted, what you're seeing (or not seeing) and what you were expecting. – filbranden Feb 29 at 18:44

The problem you're having is on line 52. Looking at your vimrc, you'll see the ~ by itself in a line.

As :help :~ can tell you, that's the command to "repeat last substitute with same substitute string but with last used search pattern." So it makes sense that you're getting the error message complaining that there's no previous pattern to repeat...

You probably got that line in a copy & paste from Vim on another machine, since Vim typically shows a string of ~ at the end of the file and you might have copied the first of them by mistake...

Regarding syntax highlighting, typically what you need is syntax on (or syntax enable, but syntax on is stronger and that's ok.)

You probably also need to enable filetype support, so I'd recommend adding at least filetype on, but better is to uncomment the block including filetype plugin indent on that also gets you indentation rules and plugins per filetype.

| improve this answer | |
  • 2
    If I could give you a million upvotes, I would. Thank you for your clear, concise, easy-to-follow answer. Sorry I asked two questions - I thought it might be relevant to communicate what I was trying to do when I screwed up, but I see your point. Thanks again! – StatsSorceress Feb 29 at 19:04
  • @StatsSorceress No problem! Glad we fixed this one. And I'd be happy to help with syntax highlighting if you didn't get it working yet, but it's likely I'd need some more information about that... So post a new question if you still need help with that! – filbranden Feb 29 at 19:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.