I'm writing a sml program (a weird functional programming language) and I'm alerting my .vimrc file. However, my changes don't seem to be taking effect to my files. I can make the changes to .vimrc and then go to my sml file and type (gg =G) to try to format, but the changes don't seem to be taking effect. For instance, I'm trying to change the size of an indent with the following lines:

set tabstop=150
set shiftwidth=150
set expandtab

and I'm trying to set the textwidth with set textwidth=20 (the 20 is just a test number).

Why isn't my .vimrc file working? I believe it's in the correct location (my ~ directory).

Here's my entire .vimrc file for your consideration.

" An example for a vimrc file.

" Maintainer:                                                                                                                                         Bram Moolenaar <Bram@vim.org>
" Last change:                                                                                                                                        2008 Dec 17
" To use it, copy it to
"     for Unix and OS/2:  ~/.vimrc
"                                                                                                                                                           for Amiga:  s:.vimrc
"  for MS-DOS and Win32:  $VIM\_vimrc
"                                                                                                                                                         for OpenVMS:  sys$login:.vimrc

" When started as "evim", evim.vim will already have done these settings.
if v:progname =~? "evim"

" Use Vim settings, rather than Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

" allow backspacing over everything in insert mode
set backspace=indent,eol,start

" Andrew Patterson added these settings "
set tabstop=150
set shiftwidth=150
set expandtab
set clipboard=unnamed

if has("vms")
  set nobackup                                                                                                                                                                                                                                                                                              " do not keep a backup file, use versions instead
  set backup                                                                                                                                                                                                                                                                                                " keep a backup file
set history=50                                                                                                                                                                                                                                                                                              " keep 50 lines of command line history
set ruler                                                                                                                                                                                                                                                                                                   " show the cursor position all the time
set showcmd                                                                                                                                                                                                                                                                                                 " display incomplete commands
set incsearch                                                                                                                                                                                                                                                                                               " do incremental searching

" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries" let &guioptions = substitute(&guioptions, "t", "", "g")

" Don't use Ex mode, use Q for formatting
map Q gq

" CTRL-U in insert mode deletes a lot.  Use CTRL-G u to first break undo,
" so that you can undo CTRL-U after inserting a line break.
inoremap <C-U> <C-G>u<C-U>

" In many terminal emulators the mouse works just fine, thus enable it.
if has('mouse')

set mouse=a

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch

" Only do this part when compiled with support for autocommands.
if has("autocmd")

  " Enable file type detection.
  " Use the default filetype settings, so that mail gets 'tw' set to 72,
  " 'cindent' is on in C files, etc.
  " Also load indent files, to automatically do language-dependent indenting.
  filetype plugin indent on

  " Put these in an autocmd group, so that we can delete them easily.
  augroup vimrcEx

  " For all files set 'textwidth' to 78 characters.
  set textwidth=20

  " When editing a file, always jump to the last known cursor position.
  " Don't do it when the position is invalid or when inside an event handler
  " (happens when dropping a file on gvim).
  " Also don't do it when the mark is in the first line, that is the default
  " position when opening a file.
  autocmd BufReadPost *
    \ if line("'\"") > 1 && line("'\"") <= line("$") |
    \   exe "normal! g`\"" |
    \ endif

  augroup END


  set autoindent                                                                                                                                                                                                                                                                                            " always set autoindenting on

endif " has("autocmd")

" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
" Only define it when not defined already.
if !exists(":DiffOrig")
  command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
                                                                                                                                                                                                                                                                                                              \ | wincmd p | diffthis

You need to reload your ~/.vimrc for your changes to take effect. This is done with:

:source ~/.vimrc

However, generally, when playing with settings, it's best to do work on the command-line as they take effect immediately and overwrite settings from filetype plugins:

:set option=value

You can add them to your ~/.vimrc when they satisfy your needs.

| improve this answer | |

Why are you setting tabstop and shiftwidth to 150? I seems unlikely that that's actually what you want. Try just doing :set by itself in normal mode from within vim to see if the values in your .vimrc are being loaded. You can also do :echo $MYVIMRC to make sure vim is looking in the right place. The action = takes depends on what the equalprg or indentexpr is, which is probably being changed by the sml specific vim settings loaded by filetype plugin indent on.

| improve this answer | |
  • 150 is just some random test number that I was using to see if I I could see any changes. The :set command shows some of the changes being loaded but not others - therefore it probably means that the plugin is changing some settings. Do you know how to change the plugin settings? – Nosrettap Jan 26 '13 at 2:04
  • 150 as tab stop with 80 characters/line is radically out of range, it wouldn't surprise me if vim just ignored such patent nonsense. – vonbrand Jan 26 '13 at 7:54

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.