2009-01-19 10 views
2

En utilisant vim, lorsque je commence un commentaire avec //, immédiatement après avoir tapé un espace, il commence une nouvelle ligne de commentaire.vim Commentaire Newlines Comportement inattendu

Par exemple, si je dactylographiées les éléments suivants:

//hello world my name is stefan 

je recevrais:

//hello 
//world 
//my 
//name 
//is 
//stefan 

Ce comportement se manifeste dans le code python ainsi, où si je commence une ligne avec impression , chaque espace est interprété comme une nouvelle ligne

print "Hello world my name is Stefan" 

est-

print 
"hello 
world 
my 
name 
is 
stefan" 

Est-ce le comportement prévu ou est-ce que j'ai un réglage raté? Ce qui suit est mon .vimrc:

" An example for a vimrc file. 
" 
" Maintainer: Bram Moolenaar <email address> 
" Last change: 2006 Nov 16 
" 
" 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" 
    finish 
endif 

" TagList plugin settings 
nmap <f12> :TlistToggle<end> 

" Use Vim settings, rather then 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 

set nobackup  " do not keep a backup file, use versions instead 
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 

" In many terminal emulators the mouse works just fine, thus enable it. 
" 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 
endif 

" 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 
    au! 

    " For all text files set 'textwidth' to 78 characters. 
    autocmd FileType text setlocal textwidth=78 

    " 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). 
    autocmd BufReadPost * 
    \ if line("'\"") > 0 && line("'\"") <= line("$") | 
    \ exe "normal! g`\"" | 
    \ endif 

    augroup END 

else 

    set autoindent  " always set autoindenting on 

endif " has("autocmd") 

set backupdir=./.backup,.,/tmp 
set directory=.,./.backup,/tmp 

map <F1> :NERDTree <CR> 
map <F2> :q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR> 
map <F5> :AV<CR> 
map <F6> :AS<CR> 
map <F7> :IHV<CR> 
map <F8> :IHS<CR> 
+3

Puis-je suggérer à la cartographie : qa! au lieu? :) – falstro

+0

Je ne vois rien de mal à cela, mais je suggère que vous fassiez un: mettre et mettre la sortie ici, de sorte que nous puissions voir quels paramètres sont actifs. –

+0

@roe lol, c'est ma connaissance vim accumulée, je voulais laisser ça pour la postérité;) –

Répondre

7

Je suppose que vous mêlé « tw » (aka textwidth) et l'ancienne commande vi pour définir la marge de texte « wm ». "tw" définit la largeur réelle de la page (c'est-à-dire tw = 77 signifie que vous voulez 77 lettres par ligne) mais "wm" définit l'écart par rapport au bord de l'écran, donc sur un écran de 80 colonnes "wm = 3 "aurait le même effet que" tw = 77 ". Donc, si votre tw est réglé sur quelque chose de très petit, il essaierait d'envelopper après chaque mot.

+0

Génial, merci beaucoup. –

+0

Je voudrais juste ajouter que je l'ai fait à nouveau et est revenu ici pour le réparer. Tu m'as aidé deux fois Paul! :) –

+0

@Stefan, hier j'avais besoin de trouver comment faire une requête SQL particulière, donc j'ai cherché sur SO et trouvé une question que j'avais demandé il y a un an quand je travaillais à un travail différent, et la réponse que je 'd accepté à l'époque m'a aidé à nouveau. Presque vous souhaitez que vous puissiez voter à nouveau, n'est-ce pas? Eh bien, vous n'avez pas à - la réponse est là pour aider toute personne qui en a besoin, même si c'est vous encore. –

1

Je ne peux pas le voir dans votre vimrc, mais il semble que votre tw est réglé sur quelque chose de bas (autre que 0), comme 5 ou plus. Essayez de définir tw = 0, et voyez ce qu'il se passe.

EDIT:
Comme Paul a souligné que vous pourriez avoir mélangé tw (textwidth) et ts (tabstop) qui est généralement fixé à 4 ou 2.

Questions connexes