當前位置:首頁 » 編程語言 » vim配置c語言

vim配置c語言

發布時間: 2023-01-11 14:32:51

『壹』 在VIM裡面是怎樣編譯c語言的文件

一、首先要會使用vim編寫一個c文件
1.在linux終端下輸入:
vi
test.c
表示生成了一個test.c的c語言文件
2.此時時命令模式,按"a"鍵或者"i"進入輸入模式,然後就是輸入C語言代碼
3.保存文件,再次回到命令模式,按"ESC「鍵,然後按":"鍵再輸入"wq」表示保存退出
二、然後在用gcc編譯test.c文件
直接輸入
gcc
-o
mytest
test.c即可
表示直接生成mytest執行文件

『貳』 怎麼在linux下用vim編寫一個C程序

先在終端中輸入

vim
test.c

回車進入vim編輯器,再按一下a鍵,進入編輯狀態,然後輸入如下C語言語句:
#include<stdio.h>
int
main()
{

printf("hello
world!\n");
}
到此,按esc鍵退出編輯狀態,再輸入一個冒號(shift
+
冒號分號那個鍵),緊跟著輸入
wq
,即
輸入

:wq

按回車,即推出vim編輯器回到終端命令窗口(類似xp的命令提示符),
之後輸入

gcc
test.c
,這步是編譯

./a.out

這是執行,將會輸出
hello
world!
到此結束,前提是你已經安裝gcc

『叄』 c語言時vim該怎樣配置才最好用

~/.vimrc 里添加一下內容

set autoindent
set cindent
set modeline
set ruler
set showcmd
set showfulltag
set showmode
set smartcase
set smartindent
set imcmdline
set previewwindow
set hlsearch
set number
set ts=4
syntax on

直接用vim進行代碼編輯就可以了。
然後使用gcc編譯器進行編譯。

『肆』 怎麼在linux下用vim編寫一個C程序

一樓的回答很好,在編譯的時候,其實可以不用退出VIM的,按ESC退出插入模式,在正常模式下輸入:w保存,然後輸入:!gcc /path/to/your/file.c就可以編譯文件了,如果有錯誤,直接就在VIM中修改,要不然為什麼VIM會被稱為神器級的編輯器呢!

『伍』 如何將VIM配置成適用C語言的IDE

VIM默認支持C、C++等語言,無需特別配置 VIM僅能作為代碼編輯器,不具有C或C++編譯器功能,需要另外選擇gcc或g++編譯器

『陸』 怎樣根據不同的語言調用不同的vim配置文件

如果 vim 能夠識別某種語言的類型,那麼就會載入和該類型有關的語言配置。如鍵映射、語法高亮等。

如果你想自己增加一些需要的配置文件,那麼在 ~/.vim/ 下(windows 系統則是我的文檔下的 vimfiles 文件夾下)增加配置文件即可(如果沒有這個文件夾,自己創建就好,但名字一定不要搞錯)。

這個文件夾下,還有如下子文件夾(依然沒有就創建):

after/
autoload/
colors/
compiler/
doc/
ftdetect/
ftplugin/
indent/
keymap/
plugin/
syntax/

其中 ftplugin 用於你自己定義類型文件的擴展插件,ftdetcet 用來定義類型文件自動識別,indent 用於定義類型文件的自動縮進,syntax 用於定義類型文件的語法高亮。

如果你要定義 c 語言的特殊配置,文件名就要叫 c.vim。如果是 python,文件名就是 python.vim。

換言之,你想定義一組 c 言語鍵映射,就寫一個叫 c.vim 的腳本(這需要不少技巧,需要學習一些編寫 vim 腳本的知識),然後放到 ftplugin 里去。如果是想定義c語言的語法高亮,就寫一個 c.vim 的語法高亮腳本,放到 syntax 裡面。

由於 vim 已經自帶了很多這樣的腳本,(在 vim 的安裝目錄下,目錄的組織形式和你自定義的一樣),所以通常不需要自己配置太多。如果自己有需要,可以簡單的加一些。



如果你的問題是指,某個語言文件沒有被正確識別,那麼可以了解下 vim 自動識別的過程:

首先 vim 根據文件的擴展名來判斷文件的內容,比如 .c 就會認為是 C 語言文件。.py 就會認為是 python。.txt 就會認為是普通文本。

如果沒有擴展名的文件,vim 也會通過文件內容來做簡單的識別。這一般是掃描文件的開頭數行(有些語言只掃描前5行,也有些會掃描幾百行),看是否出現某種語言的特徵。一但出現,便識別成相應的語言。但這發生在載入一個文件的時候。如果你是新建了一個沒有擴展名的文件,那麼之後再往裡輸入內容,vim 就不會再去識別了。


如果一個文件沒有被識別,或識別錯誤。你也可以手動指定:

:setfc

來把之設置成你需要的語言。c 那裡寫實際語言的名字。如果你發現之後文件的內容正確的顯示了語法高亮,那麼就說明這個設置已經成功了。

『柒』 我想在vim中直接編譯C語言請問怎樣配置vimrc啊

"------------------------------------------------------------------------------
" < 編譯、連接、運行配置 >
"------------------------------------------------------------------------------
" F9 一鍵保存、編譯、連接存並運行
map <F9> :call Run()<CR>
imap <F9> <ESC>:call Run()<CR>
" Ctrl + F9 一鍵保存並編譯
map <c-F9> :call Compile()<CR>
imap <c-F9> <ESC>:call Compile()<CR>
" Ctrl + F10 一鍵保存並連接
map <c-F10> :call Link()<CR>
imap <c-F10> <ESC>:call Link()<CR>
let s:LastShellReturn_C = 0
let s:LastShellReturn_L = 0
let s:ShowWarning = 1
let s:Obj_Extension = '.o'
let s:Exe_Extension = '.exe'
let s:Sou_Error = 0
let s:windows_CFlags = 'gcc -fexec-charset=gbk -Wall -g -O0 -c % -o %<.o'
let s:linux_CFlags = 'gcc -Wall -g -O0 -c % -o %<.o'
let s:windows_CPPFlags = 'g++ -fexec-charset=gbk -Wall -g -O0 -c % -o %<.o'
let s:linux_CPPFlags = 'g++ -Wall -g -O0 -c % -o %<.o'
func! Compile()
exe ":ccl"
exe ":update"
if expand("%:e") == "c" || expand("%:e") == "cpp" || expand("%:e") == "cxx"
let s:Sou_Error = 0
let s:LastShellReturn_C = 0
let Sou = expand("%:p")
let Obj = expand("%:p:r").s:Obj_Extension
let Obj_Name = expand("%:p:t:r").s:Obj_Extension
let v:statusmsg = ''
if !filereadable(Obj) || (filereadable(Obj) && (getftime(Obj) < getftime(Sou)))
redraw!
if expand("%:e") == "c"
if g:iswindows
exe ":setlocal makeprg=".s:windows_CFlags
else
exe ":setlocal makeprg=".s:linux_CFlags
endif
echohl WarningMsg | echo " compiling..."
silent make
elseif expand("%:e") == "cpp" || expand("%:e") == "cxx"
if g:iswindows
exe ":setlocal makeprg=".s:windows_CPPFlags
else
exe ":setlocal makeprg=".s:linux_CPPFlags
endif
echohl WarningMsg | echo " compiling..."
silent make
endif
redraw!
if v:shell_error != 0
let s:LastShellReturn_C = v:shell_error
endif
if g:iswindows
if s:LastShellReturn_C != 0
exe ":bo cope"
echohl WarningMsg | echo " compilation failed"
else
if s:ShowWarning
exe ":bo cw"
endif
echohl WarningMsg | echo " compilation successful"
endif
else
if empty(v:statusmsg)
echohl WarningMsg | echo " compilation successful"
else
exe ":bo cope"
endif
endif
else
echohl WarningMsg | echo ""Obj_Name"is up to date"
endif
else
let s:Sou_Error = 1
echohl WarningMsg | echo " please choose the correct source file"
endif
exe ":setlocal makeprg=make"
endfunc
func! Link()
call Compile()
if s:Sou_Error || s:LastShellReturn_C != 0
return
endif
let s:LastShellReturn_L = 0
let Sou = expand("%:p")
let Obj = expand("%:p:r").s:Obj_Extension
if g:iswindows
let Exe = expand("%:p:r").s:Exe_Extension
let Exe_Name = expand("%:p:t:r").s:Exe_Extension
else
let Exe = expand("%:p:r")
let Exe_Name = expand("%:p:t:r")
endif
let v:statusmsg = ''
if filereadable(Obj) && (getftime(Obj) >= getftime(Sou))
redraw!
if !executable(Exe) || (executable(Exe) && getftime(Exe) < getftime(Obj))
if expand("%:e") == "c"
setlocal makeprg=gcc -o %< %<.o
echohl WarningMsg | echo " linking..."
silent make
elseif expand("%:e") == "cpp" || expand("%:e") == "cxx"
setlocal makeprg=g++ -o %< %<.o
echohl WarningMsg | echo " linking..."
silent make
endif
redraw!
if v:shell_error != 0
let s:LastShellReturn_L = v:shell_error
endif
if g:iswindows
if s:LastShellReturn_L != 0
exe ":bo cope"
echohl WarningMsg | echo " linking failed"
else
if s:ShowWarning
exe ":bo cw"
endif
echohl WarningMsg | echo " linking successful"
endif
else
if empty(v:statusmsg)
echohl WarningMsg | echo " linking successful"
else
exe ":bo cope"
endif
endif
else
echohl WarningMsg | echo ""Exe_Name"is up to date"
endif
endif
setlocal makeprg=make
endfunc
func! Run()
let s:ShowWarning = 0
call Link()
let s:ShowWarning = 1
if s:Sou_Error || s:LastShellReturn_C != 0 || s:LastShellReturn_L != 0
return
endif
let Sou = expand("%:p")
let Obj = expand("%:p:r").s:Obj_Extension
if g:iswindows
let Exe = expand("%:p:r").s:Exe_Extension
else
let Exe = expand("%:p:r")
endif
if executable(Exe) && getftime(Exe) >= getftime(Obj) && getftime(Obj) >= getftime(Sou)
redraw!
echohl WarningMsg | echo " running..."
if g:iswindows
exe ":!%<.exe"
else
if g:isGUI
exe ":!gnome-terminal -e ./%<"
else
exe ":!./%<"
endif
endif
redraw!
echohl WarningMsg | echo " running finish"
endif
endfunc

怎麼用有注釋,直接放到你vimrc文件的最後就可以

熱點內容
字體android 發布:2025-07-12 21:30:38 瀏覽:621
資料庫中包含 發布:2025-07-12 21:25:08 瀏覽:621
艦娘緩存系統 發布:2025-07-12 21:21:21 瀏覽:100
cpu對存儲器的讀寫 發布:2025-07-12 21:21:14 瀏覽:772
如何建立一個網站需要伺服器 發布:2025-07-12 21:18:40 瀏覽:67
php登陸微信 發布:2025-07-12 21:17:55 瀏覽:14
公眾伺服器有什麼功能 發布:2025-07-12 21:11:22 瀏覽:715
健身的壓縮衣 發布:2025-07-12 21:11:12 瀏覽:754
磁碟伺服器如何管理磁碟 發布:2025-07-12 21:02:19 瀏覽:470
安卓返回鍵在哪裡取消 發布:2025-07-12 20:50:17 瀏覽:799