vim下寫java

前言

由于已經(jīng)習慣了vim下的各種姿勢, 剛開始學習java時雖然有很多優(yōu)秀的IDE可以選, 但本著vim下一切皆有可能, 一切都可編輯的本性, 嘗試著配置vim, 使其足以應付java的學習.

文件編譯運行

單文件

  • 直接vim Test.java

  • 由于之前已經(jīng)安裝了YCM, 所以有基本的java關鍵字補全, 但遠遠不夠

  • 編譯和運行時, 需要退出vim或者使用!javac Test.java!java Test, 或者切換到另外一個命令行執(zhí)行, 雖然可以使用歷史命令, 但依舊很不方便

  • 于是, 在~/.vimrc文件中添加如下內容:

" java代碼編譯執(zhí)行
autocmd BufNewFile,BufReadPre *.java nnoremap <leader>cr :w<cr>:!javac %<cr>:!java %:r<cr>
  • normal模式下;cr直接編譯執(zhí)行

多文件

  • 如果多個關聯(lián)的文件放在一個目錄下, 為了編譯執(zhí)行方便, 在~/.vimrc中添加如下內容:
autocmd BufNewFile,BufReadPre *.java nnoremap <leader>cra :w<cr>:!javac *.java<cr>:!java Main<cr>
  • 注意! main方法必須在Main.java文件中.

  • normal模式下;cr直接編譯執(zhí)行

java工程管理

采用eclim

java代碼補全

只有關鍵字的補全太雞肋, 只能借助eclim

java代碼調試

jdk中有jdb工具調試, 但是可能我覺得System.out.println(" ");更好用?

eclim安裝配置及使用

安裝

  • 以下安裝過程參考自官方文檔

準備條件

  • jdk1.8或者更高版本, 我的是jdk11

這個可以直接通過apt安裝(主要是官方包下載太慢), 參考https://blog.51cto.com/vvxyz/1642258

  • vim7.1或者更高版本, 我的是vim8.1

vim中, 如果:echo &compatible輸出不為0

同時:filetype輸出不為filetype detection:ON plugin:ON indent:ON

需要在~/.vimrc文件中添加:

set nocompatible
filetype plugin indent on
  • eclipse4.8.x(Photon), 這個包不是很大, 但是鑒于國內網(wǎng)速太慢, 請自備梯子, 也可以通過其他方式下載, 只要清楚eclipse的安裝位置

(雖然只有安裝了eclipse才能安裝eclim, 貌似明明可以使用eclipse卻偏不用, 但是vim好用啊)

  • python(2.7或3.x)

  • make

  • gcc

  • eclim

github項目地址

開始安裝

  • 首先需要給下好的bin文件添加執(zhí)行權限, chmod +x eclim_2.8.0.bin

  • 由于安裝時需要聯(lián)網(wǎng)驗證, 而國內又不允許, 所以請自備梯子代理

./eclim_2.8.0.bin --proxy 127.0.0.1:1080

或者

./eclim_2.8.0.bin --proxy user:password@127.0.0.1:1080

  • ip地址和端口號請自行更改

  • 然后, 就可以安裝安裝提示, 進行輸入安裝了

  • 其他更多安裝以及更新以及卸載方式, 請參考eclim官網(wǎng)安裝教程

配置

由于eclim是通過運行服務器來處理請求, 所以需要先運行eclim服務, 找到eclimd運行程序的路徑(在安裝eclim時告訴了你)

為了以后執(zhí)行方便, 可以alias eclimd='/home/didong/eclipse/committers-2019-06/eclipse/eclimd', 將其放在/etc/bash.bashrc中, 設置永久別名

甚至為了方便, 可以在/etc/rc.local文件中設置開機自啟

eclimd -b可設置后臺啟動

java代碼補全

在安裝了YCM的前提下, 在~/.vimrc中添加let g:EclimCompletionMethod = 'omnifunc'

注意, java的代碼補全只能在工程java文件中使用

如果沒有安裝YCM, 或者安裝了其他的第三方補全插件, 參考http://eclim.org/vim/code_completion.html

使用

簡單工程管理

  • 官網(wǎng)入門教程

  • :ProjectCreate ./my_java_project -n java, 創(chuàng)建一個java工程, 也可以創(chuàng)建其他類型的工程, 詳情參考官網(wǎng)入門教程

  • 在創(chuàng)建項目后, 會有一個.project 文件添加到項目的根目錄, 以及另外一個文件(java為.classpath文件)由于引用項目的源目錄和項目使用的任何第三方庫, 其他語言的文件類型, 請參考官方入門教程

  • :ProjectList列出可用項目

  • :NewSrcEntry src/java添加名為java的源目錄, 這會在.classpath文件的末尾添加必要的條目<classpathentry kind="src" path="src/java"/>, 注意, 依舊需要自己通過mkdir創(chuàng)建目錄

  • :Java運行代碼

代碼格式化

:JavaFormat, 格式化當前行或visual模式下選中行

:%JavaFormat, 格式化整個文件

重命名

將光標放到希望重命名的元素上, :JavaRename 新名即可

類型創(chuàng)建

  • class (a new class)
  • interface (a new interface)
  • abstrac (a new abstract class)
  • enum (a new enum)
  • @interface (a new annotation)

:JavaNew class MyNewClass

其他更多

參考http://eclim.org/vim/java/index.html

參考內容

http://www.reibang.com/p/b0fb705c171a

https://segmentfault.com/a/1190000005642590

eclim.org

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌攒暇,老刑警劉巖声怔,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件研叫,死亡現(xiàn)場離奇詭異咙咽,居然都是意外死亡栓霜,警方通過查閱死者的電腦和手機蜕青,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門苟蹈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人右核,你說我怎么就攤上這事慧脱。” “怎么了贺喝?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵菱鸥,是天一觀的道長。 經(jīng)常有香客問我躏鱼,道長氮采,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任染苛,我火速辦了婚禮鹊漠,結果婚禮上,老公的妹妹穿的比我還像新娘殖侵。我一直安慰自己案狠,他們只是感情好兔乞,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般擂找。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上黄锤,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天骗爆,我揣著相機與錄音,去河邊找鬼度陆。 笑死艾凯,一個胖子當著我的面吹牛,可吹牛的內容都是我干的懂傀。 我是一名探鬼主播趾诗,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蹬蚁!你這毒婦竟也來了恃泪?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤犀斋,失蹤者是張志新(化名)和其女友劉穎贝乎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叽粹,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡览效,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年却舀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锤灿。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡挽拔,死狀恐怖,靈堂內的尸體忽然破棺而出衡招,到底是詐尸還是另有隱情篱昔,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布始腾,位于F島的核電站州刽,受9級特大地震影響,放射性物質發(fā)生泄漏浪箭。R本人自食惡果不足惜穗椅,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奶栖。 院中可真熱鬧匹表,春花似錦、人聲如沸宣鄙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冻晤。三九已至苇羡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鼻弧,已是汗流浹背设江。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留攘轩,地道東北人叉存。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像度帮,于是被迫代替她去往敵國和親歼捏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內容