Sign up ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm attempting(!) to start the sql completion tutorial on vim:

enter image description here

I've created the empty file tutorial.sql

I enter insert mode ok (press i).
Then I need to hit <C-C>s which I assume is Control+uppercase C followed by lowercase s? If I try this then I get an error message saying pattern not found, although :call sqlcomplete#Map("sqlStatement") also appears - according to the tutorial I should expect to see a list (I assume a drop down list).

Where am I going wrong?
Could changes to _vimrc be interferring with things? (suspect my error is more basic than this - like not understanding <C-C>s !)

enter image description here


Current _vimrc is the following

" Must have options {{{1

"this will make the window maximized on startup
au GUIEnter * simalt ~x

" Attempt to determine the type of a file based on its name and possibly its
" contents. Use this to allow intelligent auto-indenting for each filetype,
" and for plugins that are filetype specific.
filetype indent plugin on
set omnifunc=syntaxcomplete#Complete
" Enable syntax highlighting
syntax on

"set highlight search always on
:set hlsearch

" Usability options {{{1

 " Show partial commands in the last line of the screen
set showcmd
" Use case insensitive search, except when using capital letters
set ignorecase
set smartcase
" Allow backspacing over autoindent, line breaks and start of insert action
set backspace=indent,eol,start
" When opening a new line and no filetype-specific indenting is enabled, keep
" the same indent as the line you're currently on. Useful for READMEs, etc.
set autoindent
" Stop certain movements from always going to the first character of a line.
" While this behaviour deviates from that of Vi, it does what most users
" coming from other editors would expect.
set nostartofline
" Display the cursor position on the last line of the screen or in the status
" line of a window
set ruler
" Always display the status line, even if only one window is displayed
set laststatus=2
" Instead of failing a command because of unsaved changes, instead raise a
" dialogue asking if you wish to save changed files.
set confirm
" Use visual bell instead of beeping when doing something wrong
set visualbell
" And reset the terminal code for the visual bell. If visualbell is set, and
" this line is also included, vim will neither flash nor beep. If visualbell
" is unset, this does nothing.
set t_vb=
" Enable use of the mouse for all modes
set mouse=a
" Set the command window height to 2 lines, to avoid many cases of having to
" "press <Enter> to continue"
set cmdheight=2
" Display line numbers on the left
set number
" Quickly time out on keycodes, but never time out on mappings
set notimeout ttimeout ttimeoutlen=200
" Use <F11> to toggle between 'paste' and 'nopaste'
set pastetoggle=<F11>

" Indentation options {{{1
" Indentation settings according to personal preference.

" Indentation settings for using 2 spaces instead of tabs.
" Do not change 'tabstop' from its default value of 8 with this setup.
"set shiftwidth=2
"set softtabstop=2
"set expandtab

" Indentation settings for using hard tabs for indent. Display tabs as
" two characters wide.
set shiftwidth=2
set tabstop=2

" Look and Feel {{{1
" Use CTRL-S for saving, also in Insert mode
:nnoremap <C-S>     :<C-U>update<CR>
:vnoremap <C-S>     :<C-U>update<CR>gv
:cnoremap <C-S>     <C-C>:update<CR>
:inoremap <C-S>     <C-O>:update<CR>

"color scheme setting
" Set nice colors
" background for normal text is light grey
" Text below the last line is darker grey
" Cursor is green, Cyan when ":lmap" mappings are active
" Constants are not underlined but have a slightly lighter background
set guifont=Consolas:h16:cANSI
colorscheme pyte 
"highlight Normal guibg=grey90
"highlight Cursor guibg=Green guifg=NONE
"highlight lCursor guibg=Cyan guifg=NONE
"highlight NonText guibg=grey80
"highlight Constant gui=NONE guibg=grey95
"highlight Special gui=NONE guibg=grey95

"a quick way to locate python files
nnoremap <Leader>p :pyf P:\Computer Applications\Python\

"quick quit command
noremap <Leader>e :quit<CR> "quits the current window

" NERTtree settings {{{1
"get NERDTree command quick
nnoremap <Leader>nd :NERDTree M:\
map <F2> :NERDTreeToggle<CR>
let NERDTreeQuitOnOpen = 1

" Rebind <Leader> key...not sure about this one
"let mapleader = ","

map <Leader>n <esc>:tabprevious<CR>
map <Leader>m <esc>:tabnext<CR>

" dbext settings {{{1
"let g:sql_type_default = 'SQLSVR'
" Microsoft SQL Server setting
let g:dbext_default_profile_ff = 'type=SQLSRV:user=x:passwd=m:dsnname=SQLOLEDB.1:srvname=y'
let g:dbext_default_profile_gg = 'type=SQLSRV:user=x:passwd=m:dsnname=SQLOLEDB.1:srvname=y:dbname=z'
let g:dbext_default_SQLSRV_cmd_terminator = ";"

 " Since I repeatedly need to edit stored procedures, the CREATE PROCEDURE
" statement is preceeded by an IF ... END IF block which will drop
" the procedure or it uses the CREATE OR REPLACE syntax.  
" This function will visually select the IF block to the END; statement
" of the stored procedure and execute it.  Or check for the 
" CREATE OR REPLACE and stop there and look to the end.
function! SQLExecuteIfCreateReplace()
    let l:old_sel = &sel
    let &sel = 'inclusive'
    let saveWrapScan=&wrapscan
    let saveSearch=@/ 
    let l:reg_z = @z
    let &wrapscan=0
    let @z = ''
    let found = 0
    let startLine = 0
    let endLine = 0
    let curLine = line(".")
    let curCol  = virtcol(".")

    " Must default the command terminator
    let l:dbext_cmd_terminator = ";"

            " Search backwards and do NOT wrap
            " Find the line beginning with an IF clause
            "     IF EXISTS( SELECT 1 ...
            " or find an or replace clause
            "     CREATE OR REPLACE PROCEDURE ...
            " And execute it until we find an 
            "     END 
            " at the beginning of a line.
        let startLine = search('\c\(^\<if\>\|^\<alter\s\+procedure\>\|\<or\s\+replace\>\)', 'bcnW' )

            if startLine > 0
                " Search forward and visually select all lines
                " until we find an END; clause
                let endLine = search('^END'.l:dbext_cmd_terminator.'\s*$', 'cnW')
                exec startLine.','.endLine.'DBExecRangeSQL'
            call cursor(curLine, curCol)
            let l:query = @z
            let @z = l:reg_z
            let @/=saveSearch
            let &wrapscan=saveWrapScan
            let &sel = l:old_sel

" pathogen settings {{{1

"pathogen customization
"set nocp

" Use pathogen to easily modify the runtime path to include all plugins under
" the ~/.vim/bundle directory
filetype off                    " force reloading *after* pathogen loaded
call pathogen#infect()
call pathogen#helptags()
call pathogen#runtime_append_all_bundles()
syntax on

filetype plugin indent on       " enable detection, plugins and indenting in one step
share|improve this question
<C-C>s is Ctrl+c followed by s. – romainl May 19 '13 at 13:53
@romainl - thanks (you bored again today? ...same here!) - unfortunately I get the same response as the second screen print in OP. Let me test with my custom _vimrc off-line (i.e. I'll replace it with a default version) to see if custom mappings are interferring – whytheq May 19 '13 at 14:29 I get the list!! a setting in _vimrc is playing with me. Also noticed in my $HOME I have _vimrc + _gvimrc...but I never change _gvimrc so I may aswell delete that file - ok? If I post my _vimrc to OP can you see the problem? (depends how bored you are?) – whytheq May 19 '13 at 14:35
this line is causing the problem: au GUIEnter * simalt ~x ...I added it as someone said it would mean vim will be maximized on startup which it does - is there something else I need to add to that line so that it doesn't interfere with the sql completion ? – whytheq May 19 '13 at 15:11

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.