神操作:教你如何將Vim變成一個R語言IDE

2020-12-24 IT168

    【IT168 技術】首先說明,本文不適合R語言初學者閱讀、模仿和使用,如果是初學者,那麼RStudio可能是更適合也更完美的工具。如果你在工作生活中遇到Vim / Emacsland,那麼本文可能會給你解惑不少。

  為什麼不直接使用RStudio呢?

  這是一個很棒的問題,站在我的角度來說,主要的原因速度和熟悉度。雖然RStudio也有Vim鍵綁定,但是我實在是用不慣,我已經被Vim毀了!

  R In Vim

  首先,在Vim中尋求R語言支持就是很殘酷的,不僅選擇少,而且支持也很少!所以你最好的選擇是使用一個單獨的: :terminal buffer,其基本工作流程如下:

  ·在myFile.R編寫代碼

  ·可視化選擇代碼

  ·粘貼代碼到: terminal buffer

  ·執行代碼

  ·清洗和重複

  這種方法雖然看起來不算太繁瑣,但是時間一長,難免覺得單調乏味。除此之外,這種方法還有很多不足之處,主要集中在查看定義內容,查看數據,以及一些基本的 completion + linting。

  救世主Nvim-R

  Nvim - R是我最喜歡的Vim插件之一,它有很多寶藏值得我們挖掘,毫不誇張的說,它能夠把一把舊水槍變成了一個功能齊全的機關槍。

  首先第一步,安裝Nvim-R。我用的是vim - plug,你可以使用任何插件管理器輕鬆安裝它。

  Plug 'jalvesaq/Nvim-R'

  然後打開R文件並點擊 rf,你會看到terminal buffer 出現在與你當前會話綁定的R控制臺,點擊 rq。

  R file + R console

  值得注意的一點是,控制臺並沒有綁定到當前緩衝區。這意味著您可以將多個緩衝區都輸入到同一個控制臺。想要更深入地了解R和Vim在nvim - R中的通信方式請點擊:https://github.com/jalvesaq/Nvim-R

  秘密武器

  既然已經掌握了基本的知識,我們就可以深入研究Nvim – R中所提供的一切。下面這個連結中包含了大量的內置快捷鍵,希望能夠對你有所幫助:https://github.com/jalvesaq/Nvim-R/blob/master/doc/Nvim-R.txt

  發送:

  Nvim - r中有很多方法可以發送代碼行:

  Send :: Entire File aa

  Send :: Entire Block b

  Send :: Entire Function f

  Send :: Entire Selection ss

  Send :: Entire Line l

  以上是我把基本操作映射到鍵盤上的代碼,這樣做法可以節約很多時間。

  Object Browser

  首先,Object Browser通過鍵入 ro請求的特性,查看在當前環境中哪些變量和庫是活躍的。還可以通過鍵入 rl查看對象,該函數將在當前的控制臺中運行ls()函數。

  Documentation

  為了更好地理解代碼,你可以選擇以下操作:在Nvim - R中有兩個特別的注釋 rh - help和 re - example。

  除此之外,還有另一個選擇就是Dash插件。最簡單的使用方法如下:

  現在,當你想要在R代碼或任何其他語言中尋找更多信息的時候,就把滑鼠放在單詞上,然後點擊<leader>d,Dash APP會彈出相關信息。對於在Vim中使用多種語言的使用者來說,Dash是很實用的工具。

  查看數據

  接下來,就是查看數據了。RStudio自帶了一個漂亮的數據查看器,可以方便地獲取數據。這在Vim中有點困難,但也並非不可能。

  Nvim - R允許用戶使用 rv命令查看數據幀,它會在Mac上使用X Quartz顯示數據幀,或者是通過Vim的CSV插件來顯示。CSV插件附帶了一大堆用於操作數據的額外特性,不過,我個人建議使用Excel。

  其他的提示和技巧

  不管你能力如何,下面這些小技巧你一定可以用得上:

  Inline Code Output

  如果有一行代碼,你按下 o,您將看到在當前文件中顯示為輸出。

  函數

  代替傳統的str() + plot(),Nvim-R有更簡單的方法:

  summary() :: s

  plot() :: g

  args() :: a

  setwd() :: d

  print() :: p

  names() :: n

  Arrows

  Arrows是一種很痛苦的類型。幸運的是,Nvim - R可以更容易從-映射到< -。

  completion

  通常情況下,我認為缺乏代碼自動完成是人們跳過Vim的主要原因。但這個觀點是錯誤的。

  Nvim-R completion

  Nvim - R支持代碼completion。用戶必須手動使用< c - x >< c - o >作為對象名稱,或< c - x >< c - a >作為函數參數。對於一些人來說,這個工作流是理想的,但是在VS Code這樣的智能感知選擇的對比下,就顯得很笨拙。

  Ncm-R

  Ncm - R是最佳選擇,它雖然是一個很新的包,但是很受歡迎,它與Nvim - R集成,以通過nvim - comple- manager為R提供異步completion。

  Ncm - R為所有人提供了豐富的completion:

  ·來自全局R環境的對象;

  ·來自所有加載包的函數;

  ·包內部的library() 和require();

  ·數據集內data();

  ·函數內的參數;

  ·變量內部pipes %>% 和 ggplots +;

  對於基本設置,請將下面的代碼添加到Vim配置文件中。

  R Language Server

  如果你還不熟悉語言伺服器的作用,那麼可以查看下面這個連結:。

  R Language Server還處於早期階段,基本上是實驗性的。

  Linting

  建立linting很簡單,如果你是使用異步Lint引擎ALE作為驅動程序。你可以在.vimrc中做如下設置:

  Plug 'w0rp/ale'

  然後安裝lintr:

  install.packages('lintr')

  進行到這一步,你基本就是完成了將Vim設置成為R語言IDE的工作,希望本文能夠對你有所幫助。如果有任何想法,歡迎在下面留言評論。

相關焦點

  • vim常用命令有哪些?Linux入門學習
    vim是一個文本編輯程序,沒有菜單,只有命令,且命令繁多。在運維培訓學習中,vim編輯器都有哪些知識點?有哪些命令需要掌握?>v:按字移動配合h、j、k、l使用使用y複製選中內容 替換操作r:替換當前字符文本行移動>
  • vim命令使用總結
    ;按下N代表反向重複前一個搜索動作 。2.2.1 Vim查找支持正則表達式例如/vim$匹配行尾的"vim"。需要查找特殊字符需要轉義,例如/vim\$匹配"vim$"。注意:查找回車應當用\n,而替換為回車應當用\r(相當於<CR>)。
  • VIM編輯器學習
    VIM學習方法本文引用地址:http://www.eepw.com.cn/article/151642.htm  Vim目前已經有類Unix版和Windows版,儘管vim較vi已經改良了不少,但是初次使用還是會一頭霧水,不知如何操作,所以學習vim要首先過2關。
  • C語言丨不要閱讀此文,除非你已掌握二叉樹的這些操作
    所以,二叉樹的操作必不可少。我這裡來簡單介紹一下。 在數據結構中給的樹和圖中,我們最好使用遞歸來進行各種操作,會讓代碼更清晰易懂,代碼也會更簡潔。 開始 添加適當的頭文件,定義hex一個棧數據結構, 首先我們定義一個二叉樹的數據結構
  • 大廚手把手教你,如何用飲料瓶「發豆芽」,網友:這波操作神了!
    大廚手把手教你,如何用飲料瓶「發豆芽」,網友:這波操作神了!大廚手把手教我,如何用飲料瓶子發豆芽?做法非常的簡單,而且不出一個禮拜豆芽就可以發好了,而且這樣的豆芽吃起來健康放心,純綠色食品,今天小編就將這個方法分享給大家,在日常生活中喜歡吃豆芽,感興趣的朋友可以一起來學習喲!
  • 編輯神器Vim新教程出爐,GitHub3400星,複雜命令輕鬆搞定
    提起文本編輯器,你一定會想到編輯器之神 Vim。作為一個快 30 歲的「老牌」編輯器,直到現在還很受歡迎。Vim 編輯文件非常高效,可支持多個作業系統,如 Unix/Linux、Windows、macOS,甚至 iOS 和 Android 上都能找到 Vim 的移植版本。
  • 在VIM中實現對嵌入式軟體的調試
    因此,在VIM中實現對嵌入式軟體的調試,我們便得到了一個高效、穩定的嵌入式Linux的開發環境。既然VIM和gdb的功能如此強大,又完全免費,而且完全適合嵌入式這種特殊的開發模式,那麼有沒有將二者強強聯合的方法呢?有,那就是vimgdb。 vimgdb是給VIM提供一個可選特性的補丁。它可以在VIM編輯器裡提供完整的gdb調試器支持,比如設置斷點、查看變量值、gdb命令補全等等,並且這些操作可以在VIM中直觀地顯示出來。下面闡述在VIM中實現時嵌入式軟體調試的具體過程。
  • Visual Studio Code v.s Atom-IDE:Web 開發哪家強?
    在 Atom 中使用 ide-typescript 自動補全 lodash在其他地方,自動補全功能可從一個 React 組件的 Prop Type 中識別出參數,並自動建議。要觸發 ide-typescript 的 linting,必須先禁用 Ruby linter。除非將來會有所改變,否則 Atom-IDE 不會成為多語言的編輯解決方案。
  • 白帽子黑客教你:如何在Kali Linux中更新國內軟體源?
    我們想要下載速度高的Kali Linux玩玩,就需要將Kali自帶的更新源更換為國內源,如何操作呢?接下來讓我們一起學習!二、資源裝備1.安裝好Kali Linux的虛擬機一臺;2.整裝待發的小白一個。
  • C/C+編程筆記:如何在電腦上手動配置C+編譯環境?不懂收藏
    文本編輯器包括 Windows Notepad、OS Edit command、Brief、Epsilon、EMACS 和 vim/vi。文本編輯器的名稱和版本在不同的作業系統上可能會有所不同。例如,Notepad 通常用於 Windows 作業系統上,vim/vi 可用於 Windows 和 Linux/UNIX 作業系統上。通過編輯器創建的文件通常稱為源文件,源文件包含程序原始碼。
  • 一次使用 Go 語言編寫腳本的經歷
    本文介紹了我如何嘗試使用 Go 語言進行腳本編程的經歷。文中我將討論 Go 腳本的必要性,我們預期的表現以及可能的實現方式。在討論過程中,我講深入探討腳本、Shell 和 Shebang。最終,我們將會討論讓 Go 腳本工作的解決方案。為什麼 Go 語言適合編寫腳本?
  • 手把手教你學會Filmigo轉場 Filmigo視頻轉場還有這些神級操作
    手把手教你學會Filmigo轉場 Filmigo視頻轉場還有這些神級操作 好的轉場可以為視頻增色不少今天的Filmigo課堂就詳解如何用Filmigo
  • iPhone X全面操作指南 教你如何快速上手
    iPhone X全面操作指南 教你如何快速上手 2017-11-01 16:59 | 作者:leidian | 來源:265G QQ群號:624022706 | 我要分享:
  • 創世神教你一鍵復原!
    歡迎查看今天的小布說遊,MC作為一款創造與破壞為主題的遊戲,受到了很多玩家的歡迎,但是有一部分玩家卻把」破壞「這個功能發揮的淋漓盡致,如果你玩過MC的多人伺服器的話,你應該經常能夠看到一些被熊孩子給破壞了的地形吧?今天我就教大家如何使用創世神工具來一鍵復原我們的自然地形!
  • 世界上最好的編輯器Vim:1700多頁數學筆記是如何實時完成的
    使用 vim 插件的設置如下所示:   最後兩行的設置隱藏屬性。這是一個特徵,當你的光標不在那一行時,LaTex 代碼會被替代或隱藏。通過隱藏 \[、\] 和$等標誌符,你可以更舒服地瀏覽文件。這一特徵也以∩替代\bigcap,以∈替代\in 等。以下動畫應能夠使這一過程更清楚。
  • 理解Go語言的nil
    在Go語言中,如果你聲明了一個變量但是沒有對它進行賦值操作,那麼這個變量就會有一個類型的默認零值。nil的slice,除了不能索引外,其他的操作都是可以的,當你需要填充值的時候可以使用append函數,slice會自動進行擴充。
  • 谷歌瀏覽器如何更改語言?Chrome瀏覽器語言設置方法
    有不少用戶反饋,因為工作原因需要使用其他語言,公司安裝的谷歌瀏覽器都是中文的,不方便其使用,那麼要如何更改瀏覽器的語言呢?其實很簡單,下面小編就教大家谷歌瀏覽器如何設置語言。詳細如下:1、打開瀏覽器,點擊右上角的三個點;2、點擊設置;3、選擇高級設置;4、找到語言,點擊語言和輸入設置;5、選擇添加;
  • 如果你想學C語言,下載哪個編譯器好?
    C語言這個東西現在用的人很少,一般都是用java的多,不過對於我來講,我一看C語言就親切,就想寫,工作上不一定能用得到,但是C語言作為作為所有高級語言的爸爸,多學一點有助於理解一些底層的東西,下面我就跟大家說一下想學C語言下載哪個編譯器好。
  • 教你如何最簡單的把客廳變成電影院
    可以全面提升電視音效,讓你在家裡可以找到電影院般震撼的立體聲效果。教你如何最簡單的把客廳變成電影院    如今液晶電視的普及率已經很高,相比於以前的彩色電視機,現在的電視在畫質上已經達到了4K高清水平,而且功能也更強大。