vim注释换行符意外行为

Ste*_*Mai 2 vim newline

在使用vim时,当我用//开始注释时,在我输入空格后立即开始一个新的注释行.

例如,如果我输入以下内容:

//hello world my name is stefan
Run Code Online (Sandbox Code Playgroud)

我会得到:

//hello
//world
//my
//name
//is
//stefan
Run Code Online (Sandbox Code Playgroud)

这种行为也表现在python代码中,如果我用print开始一行,每个空格都被解释为换行符

print "Hello world my name is Stefan"
Run Code Online (Sandbox Code Playgroud)

print
"hello
world
my
name
is
stefan"
Run Code Online (Sandbox Code Playgroud)

这是预期的行为还是我的设置搞砸了?以下是我的.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>
Run Code Online (Sandbox Code Playgroud)

Pau*_*lin 7

我的猜测是你混合了"tw"(又名textwidth)和旧的vi命令来设置文本边距"wm"."tw"设置页面的实际宽度(即tw = 77表示你想要每行77个字母),但是"wm"设置距离屏幕边缘有多远,所以在80列屏幕上"wm = 3"将与"tw = 77"具有相同的效果.因此,如果你的tw被设置为非常小的东西,它会尝试在每个单词之后换行.