Ⅰ 用VI寫的代碼 無法編譯
你好
首先 你定義的int函數,所以最後應該加一個返回值 return 0;
其次 你要確定你的電腦已經安裝了gcc這個編譯器,這種情況一般是沒裝gcc
你用cc -o a a.c試下
Ⅱ 為什麼我在LINAUX系統下的VI編輯器里的程序無法編譯
vi 編輯器也不是編譯器阿,你用gcc -g命令編譯生成a.out文件再執行試試
Ⅲ 打開終端,利用vi編譯器新建一個空文件,為什麼會報錯
代碼錯誤。在利用vi編譯器,新建一個空文件,會報錯是由於代碼錯誤。vi編譯器是linux和Unix上最基本的文本編輯器,工作在字元模式下,由於不需要圖形界面,使其成了效率很高的文本編輯器。
Ⅳ Linux 中vi編輯器,當在一般模式中輸入:wq保存退出時,報錯如下圖
你的當然文件夾下有一個test文件夾吧,所以你是用vi打開了這個文件夾,文件夾是不可以改寫的(只讀)所以無法保存。vi是可以打開文件夾來查看的,但無法改寫。
Ⅳ 【Linux】使用vim時報錯E138: Can't write viminfo file /home/work/.viminfo!
最近在使用vim編輯器時,老是報錯:E138: Can't write viminfo file /home/work/.viminfo!
先說解決辦法:進入報錯的目錄,也就是/home/work/,然後執行命令:rm -f .viminf*.tmp 即可
原因:進入/home/work/目錄下,用ls -a你會發現有很多.viminfa.tmp - .viminfz.tmp 這種的臨時文件,這是因為使用vim編輯器時,如果編輯器沒有正常退出就會生成一個暫存文件,供下次恢復使用。而這個錯誤是因為生成大量的「.viminf*.tmp」 並沒有被系統自動刪除,而是一直存在於該文件夾中,使得vim每次向「.viminfo」中寫入使用信息時,無法判斷該寫入哪個信息
Ⅵ 我在REd Hat Enterprise linux4下 用vi編輯器編寫程序,末行模式下保存的時候出現錯誤
:wq
強制保存。
Ⅶ vim運行:make出錯
VI/VIM基礎知識
很多人應該都知道VI是個有模式的編輯器:編輯模式和命令模式,按ESC回到命令模式,用i或者a進入編輯模式,由於區分了模式,導致VI的命令非常簡潔,而無模式編輯器比如Emacs,所有的命令都需要加上控制鍵Ctrl或Alt。
VI繼承了ed的理念,另外也有歷史原因,VI追求的是快捷——啟動程序迅速,編輯文本高效,功能專注,而Emacs追求的是功能的豐富強大以及集成帶來的方便。
在VIM里頭:help mode可以看到VIM的所有模式,主要有如下幾種:
Normal mode 即通常所謂的命令模式,在此模式使用a、i、A、I、o、O等進入Insert mode
Insert mode 即通常所謂的編輯模式,在此模式使用ESC進入Normal mode或者Ctrl-o臨時進入Normal mode。
Command-line mode 命令行模式,在Normal mode下按冒號進入,按ESC取消執行命令或者回車執行命令,然後回到Normal mode。(Visual Studio.Net也添加了命令行腳本功能,幸甚)
Visual mode 即選擇模式(注意跟用滑鼠選擇不同),用v,V,C-v或C-q進入
Select mode 滑鼠選擇
Replace mode 在Normal mode下按R進入,按ESC返回Normal mode,相當於Windows下命令行中按Insert鍵進入的覆蓋模式
從VI/VIM中退出:按ESC確認返回到Normal mode,然後
:wq 保存並退出
:q! 不保存並退出
:x 退出,如果文件更改則保存
ZZ 退出,如果文件更改則保存(按住Shift,再按兩次z)
VI的命令是非常具有美感的,下面是幾個例子:
i 在游標前插入 I 在行首插入
a 在游標後插入 A 在行末插入
o 在下一行插入 O 在上一行插入
x 刪除當前字元 X 刪除前一個字元
類似的還有b,B,ge,gE,w,W,e,E,f,F,t,T,這些命令都可以用:help cmdname查到幫助。
dd 刪除一行 yy 拷貝一行
h j k l 左下上右移動游標
Ctrl-w h,Ctrl-w j,Ctrl-w k,Ctrl-w l 切換到左下上右窗口
類似ed,VI/VIM的命令大多都可以帶一個數字前綴或者一個數字范圍,比如:
5dd 從當前行開始刪除5行
5yy 從當前行開始拷貝5行
1,3d 刪除1至3行
1,3y 拷貝1至3行 (.代表當前行,$代表最後一行)
d<motion>,y<motion>,c<motion>,v<motion>分別代表刪除/拷貝/修改/選擇<motion>
命令指定的范圍,比如
int main(void)
{
......;
}
將游標放在{處,然後輸入v%就可以把大括弧中內容選定,然後按=就可以按照C語言格式縮排(:help =可以看到=命令的描述),%命令的作用是跳到匹配處,比如括弧之間,C的宏指令#if #else #endif之間。
int some_ugly_modifier and some_ugly_name (void)
如果游標放在第一個s上,想刪除到「(」為止,則輸入dt(就可以了,t(的作用是跳到下一個
"("前。
dG可以從當前位置一直刪除到文件末尾,因為G的作用是跳到文件最後一行。
VIM的命令可以非常快捷的做到一些復雜的編輯操作。
命令解釋如下:
% 全文(「%」是「1,$」范圍的縮寫)
s 替換
/ 搜索字元串開始
( 左括弧
\) 開始記錄匹配
\d+ 一個或多個數字
\) 結束記錄匹配
) 右括弧
/ 搜索字元串結束
\= 把後面的表達式計算出來作為替換字元串
"(" 左括弧
. 字元串連接運算符
(submatch(1) + 1) 把第一個匹配的結果加一作為一個整體返回
.")" 添上右括弧
/g 替換字元串結束,g表示替換每一行的所有匹配結果。
:set ve=all 使得游標可以定位到屏幕任何位置(預設下VIM的游標只能放在行內的字元上)
gg 到文件第一行
/\s\+&\s*$ 找以&結尾的行,&前至少一個空白字元,後0或多個空白字元
qa 記錄宏到寄存器a
D 刪除到行尾
78| 定位到第78列
i&<ESC> 插入&並返回到命令模式
n 查找下一個&
q 停止記錄宏
10000@a 執行一萬遍寄存器a中保存的命令
:set ve="" 恢復ve預設值
Ⅷ Linux Vi編輯器 打開文件時報的異常 怎麼解決 在線等
報這個錯誤是因為這個文件以前被編輯的過程中,存在非法退出,所以在該文件的相同目錄下存在一個 .sysctl.conf.swp 文件,將此文件刪除後再進行編輯即可,注意,此文件是隱藏的,而且文件名是以英文的點開頭的: " . " ,刪除時直接輸入 rm -rf /etc/.sysctl.conf.swp 即可。
Ⅸ 虛擬機裝的linux5 vi編輯器里輸入命令字不會變顏色,是不是沒有識別啊編譯的時候一直有錯誤,怎麼辦
你沒有配置好vim
lookme的vim
不僅僅有高亮還有提示哦
表示和我磨合了5年的配置
需要配置聯系我
mail:[email protected]
Ⅹ c++ 編譯錯誤 vi編譯器
q.cpp: In function `int main()':
在mian函數里
q.cpp:20: no method `score::sumfs'
提示你沒有 sumfs 方法
q.cpp:13: `int score::sumfs' is not a static member of `class score'
sumfs 不是一個靜態成員
你看看咯,sumfs錯了,應該是sunfs吧。
再說,你都已經學到了類了,連這些你都看不懂。這個已經說不過去了