Welche vim-Einstellungen brauche ich, damit vim ftp write nicht in das DOS-Format konvertiert wird?

365
octopusgrabbus

Bei dieser Frage geht es wirklich darum, eine Datei mit gVim oder der Befehlszeile vim zu schreiben, ohne dass der Dateityp (Unix) in DOS geändert wird. Dieses Problem tritt nicht in der Befehlszeile vim direkt auf einem Linux-System auf.

Ich bearbeite Dateien, die sich auf einem Linux-System befinden, mit gVim. Der Bearbeitungsbefehl sieht folgendermaßen aus:

:e ftp://user@server//home/csm/csmdev/recpt_rpt.4gl

Wenn ich die Datei bearbeite, ist der Typ Unix. Wenn ich die Datei schreibe, wird sie automatisch in das DOS-Format konvertiert. Ich bestätige dies durch Eingabe des :e!Rechts nach dem Auslesen der Datei mit :w.

Ich habe meine .vimrc am Ende dieses Beitrags eingefügt.

Ich habe die Vorschläge als Antwort (en) auf dieses OP angenommen.

nnoremap <F2> :set nonumber!<CR>:set foldcolumn=0<CR> filetype plugin indent on autocmd FileType python set complete+=k~/.vim/syntax/python.vim isk+=.,( map <buffer> <S-e> :w<CR>:!/usr/bin/env python % <CR> set encoding=utf8 set paste set expandtab set textwidth=0 set tabstop=4 set softtabstop=4 set shiftwidth=4 set autoindent set backspace=indent,eol set incsearch set ignorecase set ruler set wildmenu set commentstring=\ #\ %s set clipboard+=unnamed set wm=8 syn on set nocompatible set fileformats=unix,dos " tab navigation adapted from vim tip 1221 nmap th :tabprev<cr> nmap tl :tabnext<cr> nmap tn :tabnew<cr> nmap tc :tabclose<cr> set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]  set laststatus=2 
0

2 Antworten auf die Frage

3
cforbish

Das sollte den Trick tun:

set fileformats=unix 

Es verhindert die Verwendung des DOS-Dateiformats.

Wie sieht es mit der automatischen Erkennung aus, falls ich eine Windows-Datei bearbeite? Auch dies wird von gVim nicht aufgegriffen. Muss ich mich abmelden und wieder anmelden? octopusgrabbus vor 10 Jahren 0
@octopusgrabbus, fügen Sie diese Zeile zu Ihrem vimrc hinzu. romainl vor 10 Jahren 1
@octopusgrabbus können Sie `set fileformats = unix, dos` verwenden. Dadurch sollten neue Dateien als Unix-Dateien erstellt werden, das vorhandene Dateiformat kann jedoch allein gelassen werden. Ja, nachdem Sie diese Zeile in .vimrc eingefügt haben, müssten Sie gvim erneut starten, es sei denn, Sie legen `fileformats` manuell im Befehlsmodus fest. cforbish vor 10 Jahren 0
Es geht immer noch zurück. Das ist es, DOS zu schreiben. octopusgrabbus vor 10 Jahren 0
0
octopusgrabbus

Dieses Problem ist jetzt behoben. Es wurde behoben, als ich vim aus 7.4a Beta baute. Ich poste die .vimrc-Datei, die nicht die Option Dateiformate enthält.

Ich habe die config mit diesen Parametern ausgeführt:

/configure --enable-gui=auto --disable-gtktest

Hier ist die .vimrc:

nnoremap <F2> :set nonumber!<CR>:set foldcolumn=0<CR> filetype plugin indent on autocmd! autocmd FileType python set complete+=k~/.vim/syntax/python.vim isk+=.,( map <buffer> <S-e> :w<CR>:!/usr/bin/env python % <CR> set encoding=utf8 set paste set expandtab set textwidth=0 set tabstop=4 set softtabstop=4 set shiftwidth=4 set autoindent set backspace=indent,eol set incsearch set ignorecase set smartcase set ruler set wildmenu set commentstring=\ #\ %s set clipboard+=unnamed set wm=8 syn on set nocompatible " tab navigation adapted from vim tip 1221 nmap th :tabprev<cr> nmap tl :tabnext<cr> nmap tn :tabnew<cr> nmap tc :tabclose<cr> set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]  set laststatus=2 " Uncomment the following to have Vim jump to the last position when " reopening a file if has("autocmd") au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") \| exe "normal g'\"" | endif endif autocmd BufNewFile * silent! 0r $VIMHOME/templates/%:e.tpl augroup filetypedetect autocmd BufRead,BufNewFile *.wiki setfiletype Wikipedia autocmd BufRead,BufNewFile *.wikipedia.org* setfiletype Wikipedia augroup END