Какие настройки vim мне нужны, чтобы запись vim ftp не конвертировалась в формат dos?

270
octopusgrabbus

На самом деле этот вопрос касается возможности записи файла с использованием gVim или командной строки vim без изменения типа файла (Unix) на DOS. Эта проблема не происходит в командной строке vim напрямую в системе Linux.

Я редактирую файлы, которые находятся в системе Linux, используя gVim. Команда редактирования выглядит так:

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

Когда я редактирую файл, это тип Unix. Когда я записываю файл, он автоматически конвертируется в формат dos. Я подтверждаю это, вводя :e!право после записи файла с помощью :w.

Я включил мой .vimrc в конце этого поста.

Я принял предложения, представленные в качестве ответа (ов) комментариев к этому OP.

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 ответа на вопрос

3
cforbish

This should do the trick:

set fileformats=unix 

It prevents using dos file format.

А как насчет автоопределения, если я редактирую файл Windows? Кроме того, это не воспринимается gVim. Нужно ли выходить из системы и входить обратно? octopusgrabbus 10 лет назад 0
@ octopusgrabbus, добавь эту строку в свой vimrc. romainl 10 лет назад 1
@octopusgrabbus, вы можете использовать `set fileformats = unix, dos`. Это должно создавать новые файлы как файлы Unix, но иметь возможность оставлять существующие файлы в формате отдельно. Да, после помещения этой строки в .vimrc, вам нужно будет снова запустить gvim, если вы вручную не установите `fileformats` из командного режима. cforbish 10 лет назад 0
Это все еще возвращается назад. То есть он пишет дос. octopusgrabbus 10 лет назад 0
0
octopusgrabbus

This problem is now resolved. It was resolved when I built vim from 7.4a Beta. I am posting the .vimrc, which does not have the fileformats option in it.

I ran the config with these parameters:

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

Here is the .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