ฉันจะตรวจสอบ. vimrc ของฉันได้อย่างไร


2

ดูเหมือนว่าไฟล์. vimrc ของฉันจะใช้งานได้และจะไม่สร้างข้อผิดพลาดที่มองเห็นได้ระหว่างการทำงานปกติ ฉันเพิ่งเริ่มใช้มีดและพบว่าฉันไม่สามารถใช้ Vim เป็นเครื่องมือแก้ไขเนื้อหาของ Chef เพราะมีบางสิ่งที่ทำให้รหัสออกไม่ดี การลบไฟล์. vimrc ทำให้มีดมีความสุขดังนั้นฉันจึงสมมติว่ามีบางอย่างใน. vimrc ของฉันไม่ดี

มีคำสั่งหรือเครื่องมือใดบ้างที่ฉันสามารถใช้เพื่อตรวจสอบข้อผิดพลาด. vimrc เองหรือไม่

นี่คือ vimrc ที่เป็นปัญหา:

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle, required
Bundle 'gmarik/vundle'
Bundle 'scrooloose/syntastic'
Bundle 'scrooloose/nerdtree'
Bundle 'michalbachowski/vim-wombat256mod'
Bundle 'spf13/vim-autoclose'
Bundle 'leshill/vim-json'
Bundle 'pangloss/vim-javascript'
Bundle 'hail2u/vim-css3-syntax'
Bundle 'tpope/vim-markdown'
Bundle 'beyondwords/vim-twig'
Bundle 'spf13/PIV'
Bundle 'othree/html5-syntax.vim'
Bundle 'vim-scripts/HTML-AutoCloseTag'
Bundle 'vim-scripts/indenthtml.vim'
Bundle 'Lokaltog/powerline'
" Keep bundle commands between here and filetype plugin indent on.



filetype plugin indent on     " required

" Brief help
" :BundleList          - list configured bundles
" :BundleInstall(!)    - install (update) bundles
" :BundleSearch(!) foo - search (or refresh cache first) for foo
" :BundleClean(!)      - confirm (or auto-approve) removal of unused bundles
"
" see :h vundle for more details or wiki for FAQ
" NOTE: comments after Bundle commands are not allowed.

" NERDTree config
map <C-n> :NERDTreeToggle<CR>
autocmd vimenter * if !argc() | NERDTree | endif

" enable paste mode
nnoremap <F2> :set invpaste paste?<CR>
set pastetoggle=<F2>
set showmode

" Set PHP debugger port to 9001
let g:debuggerPort = 9001

set t_Co=256
colorscheme wombat256mod
:syntax enable

python from powerline.vim import setup as powerline_setup
python powerline_setup()
python del powerline_setup
set rtp+=/Users/shane/.vim/bundle/powerline/powerline/bindings/vim

set number              " Enables line numbers
set cindent             " autoindent
set tabstop=4           " set tab distance
set shiftwidth=4
set expandtab           " force tabs into spaces
set ruler

let g:html_indent_script1 = "inc"
let g:html_indent_style1 = "inc"

autocmd BufNewFile,BufRead Gemfile set filetype=ruby
autocmd BufNewFile,BufRead Vagrantfile set filetype=ruby

มีเส้นJeeves:chef shane$ vi /Users/shane/.vimrcและJeeves:chef shane$ cat /Users/shane/.vimrcส่วนหนึ่งของไฟล์ vimrc ของคุณหรือไม่หรือเป็นเส้นตัดและวางจากเทอร์มินัลของคุณ?
benjifisher

เพียงคัดลอกประมาท ขอบคุณที่จำได้
shanethehat

คำตอบ:


1

คุณไม่สามารถ. เช่นเดียวกับภาษาที่ตีความส่วนใหญ่ (ทั้งหมด?) สิ่งเดียวที่สามารถทำได้คือการตรวจสอบความถูกต้องทางไวยากรณ์ แต่ไม่ว่าฟังก์ชั่นการโทร ฯลฯ ที่คุณจดบันทึกจะมีเหตุผลหรือไม่ก็ตามจะแสดงเฉพาะเมื่อมีการตีเส้นทางรหัสเฉพาะ

สิ่งเดียวที่คุณทำได้คือ จำกัด ปัญหาให้แคบลงโดยตรวจสอบว่า "รหัสไม่ดี" คืออะไรและพยายามบอกอะไรคุณ ตัวอย่างเช่นคุณสามารถลองแก้ไขปัญหาด้วยการแสดงความคิดเห็นทุกสิ่งที่คุณไม่แน่ใจว่าพวกเขาจะไม่ทำให้เกิดปัญหาลองใช้มีดทำงานร่วมกับการกำหนดค่านี้และเปิดใช้งานรหัสการใส่รหัสก่อนหน้าจนกว่าคุณจะได้รับข้อผิดพลาดอีกครั้ง


0

คุณแน่ใจหรือว่าเป็นรหัสออกเป็นกลุ่มและไม่ใช่สถานะของไฟล์ที่คุณกำลังแก้ไข ภายใต้:help 'backupcopy'มีย่อหน้าเกี่ยวกับการใช้ vim เพื่อแก้ไขไฟล์ crontab ของคุณ คุณสามารถไปที่นั่นได้โดยตรง (แต่เสียบริบท) ด้วย:help crontab:

                 *crontab*
One situation where "no" and "auto" will cause problems: A program
that opens a file, invokes Vim to edit that file, and then tests if
the open file was changed (through the file descriptor) will check the
backup file instead of the newly created file.  "crontab -e" is an
example.

หากนี่อาจเป็นสิ่งที่เกิดขึ้นกับ Knife ให้ลองเพิ่ม:set bkc=yesไฟล์ vimrc ของคุณ คุณสามารถบันทึกการทดสอบได้มากมายเนื่องจากไม่ว่าคุณจะใส่ความคิดเห็นในไฟล์ vimrc ของคุณมากเท่าใด vim จะรีเซ็ต'compatible'ตัวเลือกทันทีที่พบไฟล์ vimrc และสิ่งนี้จะตั้ง'backupcopy'เป็น "อัตโนมัติ" ฉันมีดังต่อไปนี้ในไฟล์ vimrc ของฉัน:

" When vim is called from "crontab -e" we need to set this option specially:
au BufEnter /private/tmp/crontab.* setl backupcopy=yes

นี่ไม่ใช่กรณีของมีด มันคุ้มค่าที่จะลองก่อน
shanethehat
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.