0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

總結(jié)使用 Vim 的過(guò)程中不得不了解的一些指令和注意事項(xiàng)

算法與數(shù)據(jù)結(jié)構(gòu) ? 2017-12-27 16:44 ? 次閱讀

Vim 是一個(gè)上古神器,本篇文章主要持續(xù)總結(jié)使用 Vim 的過(guò)程中不得不了解的一些指令和注意事項(xiàng),以及持續(xù)分享一個(gè)前端工作者不得不安裝的一些插件,而關(guān)于 Vim 的簡(jiǎn)介,主題的選擇,以及為何使用 vim-plug 來(lái)管理插件等內(nèi)容,有興趣的同學(xué)下來(lái)可以自己了解和對(duì)比下

安裝

sudo apt-get install vim // Ubuntu

其他平臺(tái),可以自行谷歌

新手指南

vimtutor // vim 教程

上面是史上最簡(jiǎn)單,最全面的 Vim 基礎(chǔ)教程,至今無(wú)人超越

下面是作者基于上面的歸納

移動(dòng)光標(biāo)

# hjkl

# 2w 向前移動(dòng)兩個(gè)單詞

# 3e 向前移動(dòng)到第 3 個(gè)單詞的末尾

# 0 移動(dòng)到行首

# $ 當(dāng)前行的末尾

# gg 文件第一行

# G 文件最后一行

# 行號(hào)+G 指定行

# +o 跳轉(zhuǎn)回之前的位置

# +i 返回跳轉(zhuǎn)之前的位置

退出

# 進(jìn)入正常模式

# :q! 不保存退出

# :wq 保存后退出

刪除

# x 刪除當(dāng)前字符

# dw 刪除至當(dāng)前單詞末尾

# de 刪除至當(dāng)前單詞末尾,包括當(dāng)前字符

# d$ 刪除至當(dāng)前行尾

# dd 刪除整行

# 2dd 刪除兩行

修改

# i 插入文本

# A 當(dāng)前行末尾添加

# r 替換當(dāng)前字符

# o 打開(kāi)新的一行并進(jìn)入插入模式

撤銷

# u 撤銷

# +r 取消撤銷

復(fù)制粘貼剪切

# v 進(jìn)入可視模式

# y 復(fù)制

# p 粘貼

# yy 復(fù)制當(dāng)前行

# dd 剪切當(dāng)前行

狀態(tài)

# +g 顯示當(dāng)前行以及文件信息

查找

# / 正向查找(n:繼續(xù)查找,N:相反方向繼續(xù)查找)

# ? 逆向查找

# % 查找配對(duì)的 {,[,(

# :set ic 忽略大小寫(xiě)

# :set noic 取消忽略大小寫(xiě)

# :set hls 匹配項(xiàng)高亮顯示

# :set is 顯示部分匹配

替換

# :s/old/new 替換該行第一個(gè)匹配串

# :s/old/new/g 替換全行的匹配串

# :%s/old/new/g 替換整個(gè)文件的匹配串

執(zhí)行外部命令

# :!shell 執(zhí)行外部命令

.vimrc

.vimrc 是 Vim 的配置文件,需要我們自己創(chuàng)建

cdHome// 進(jìn)入 Home 目錄

touch.vimrc// 配置文件

# Unix

# vim-plug

# Vim

curl-fLo~/.vim/autoload/plug.vim--create-dirs

https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

# Neovim

curl-fLo~/.local/share/nvim/site/autoload/plug.vim--create-dirs

https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

其他平臺(tái),可以查看 vim-plug

基本配置

取消備份

set nobackup

setnoswapfile

文件編碼

set encoding=utf-8

顯示行號(hào)

set number

取消換行

set nowrap

顯示光標(biāo)當(dāng)前位置

set ruler

設(shè)置縮進(jìn)

set cindent

settabstop=2

setshiftwidth=2

突出顯示當(dāng)前行

set cursorline

查找

set ic

set hls

setis

左下角顯示當(dāng)前 vim 模式

set showmode

代碼折疊

# 啟動(dòng) vim 時(shí)關(guān)閉折疊代碼

setnofoldenable

主題

syntax enable

setbackground=dark

colorschemesolarized

插件配置

樹(shù)形目錄

Plug'scrooloose/nerdtree'

Plug'jistr/vim-nerdtree-tabs'

Plug'Xuyuanp/nerdtree-git-plugin'

autocmd vimenter *NERDTree

map :NERDTreeToggle

letNERDTreeShowHidden=1

letg:NERDTreeShowIgnoredStatus=1

letg:nerdtree_tabs_open_on_console_startup=1

letg:NERDTreeIndicatorMapCustom={

"Modified":"?",

"Staged":"?",

"Untracked":"?",

"Renamed" :"?",

"Unmerged":"═",

"Deleted" :"?",

"Dirty" :"?",

"Clean" :"??",

'Ignored' :'?',

"Unknown" :"?"

}

# o 打開(kāi)關(guān)閉文件或目錄

# e 以文件管理的方式打開(kāi)選中的目錄

# t 在標(biāo)簽頁(yè)中打開(kāi)

# T 在標(biāo)簽頁(yè)中打開(kāi),但光標(biāo)仍然留在 NERDTree

# r 刷新光標(biāo)所在的目錄

# R 刷新當(dāng)前根路徑

# X 收起所有目錄

# p 小寫(xiě),跳轉(zhuǎn)到光標(biāo)所在的上一級(jí)路徑

# P 大寫(xiě),跳轉(zhuǎn)到當(dāng)前根路徑

# J 到第一個(gè)節(jié)點(diǎn)

# K 到最后一個(gè)節(jié)點(diǎn)

# I 顯示隱藏文件

# m 顯示文件操作菜單

# C 將根路徑設(shè)置為光標(biāo)所在的目錄

# u 設(shè)置上級(jí)目錄為根路徑

# ctrl + w + w 光標(biāo)自動(dòng)在左右側(cè)窗口切換

# ctrl + w + r 移動(dòng)當(dāng)前窗口的布局位置

# :tabc 關(guān)閉當(dāng)前的 tab

# :tabo 關(guān)閉所有其他的 tab

# :tabp 前一個(gè) tab

# :tabn 后一個(gè) tab

# gT前一個(gè) tab

# gt后一個(gè) tab

代碼,引號(hào),路徑補(bǔ)全

Plug'Valloric/YouCompleteMe'

Plug'Raimondi/delimitMate'

Plug'Shougo/deoplete.nvim',{'do':':UpdateRemotePlugins'}

語(yǔ)法高亮,檢查

Plug'sheerun/vim-polyglot'

Plug'w0rp/ale'

letg:ale_linters={

'javascript':['eslint'],

'css':['stylelint'],

}

letg:ale_fixers={

'javascript':['eslint'],

'css':['stylelint'],

}

letg:ale_fix_on_save=1

letg:ale_sign_column_always=1

letg:ale_sign_error='●'

letg:ale_sign_warning='?'

nmap

nmap

文件,代碼搜索

Plug'rking/ag.vim'

Plug'kien/ctrlp.vim'

加強(qiáng)版狀態(tài)欄

Plug'vim-airline/vim-airline'

Plug'vim-airline/vim-airline-themes'

letg:airline_theme='papercolor'

代碼注釋

Plug'scrooloose/nerdcommenter'

# cc // 注釋

# cm 只用一組符號(hào)注釋

# cA 在行尾添加注釋

# c$ /* 注釋 */

# cs /* 塊注釋 */

# cy 注釋并復(fù)制

# c 注釋/取消注釋

# ca 切換// 和 /* */

# cu 取消注釋

letg:NERDSpaceDelims=1

letg:NERDDefaultAlign='left'

letg:NERDCustomDelimiters={

'javascript':{'left':'//','leftAlt':'/**','rightAlt':'*/'},

'less':{'left':'/**','right':'*/'}

}

git

Plug'airblade/vim-gitgutter'

Plug'tpope/vim-fugitive'

Markdown

Plug'suan/vim-instant-markdown'

letg:instant_markdown_slow=1

letg:instant_markdown_autostart=0

# :InstantMarkdownPreview

Emmet

Plug'mattn/emmet-vim'

letg:user_emmet_leader_key=''

letg:user_emmet_settings={

'javascript.jsx':{

'extends':'jsx',

},

}

html 5

Plug 'othree/html5.vim'

css 3

Plug'hail2u/vim-css3-syntax'

Plug'ap/vim-css-color'

augroup VimCSS3Syntax

autocmd!

autocmd FileType css setlocaliskeyword+=-

augroupEND

JavaScipt

Plug'pangloss/vim-javascript'

letg:javascript_plugin_jsdoc=1

letg:javascript_plugin_ngdoc=1

letg:javascript_plugin_flow=1

setfoldmethod=syntax

letg:javascript_conceal_function ="?"

letg:javascript_conceal_null ="?"

letg:javascript_conceal_this ="@"

letg:javascript_conceal_return ="?"

letg:javascript_conceal_undefined="?"

letg:javascript_conceal_NaN="?"

letg:javascript_conceal_prototype="?"

letg:javascript_conceal_static ="?"

letg:javascript_conceal_super="Ω"

letg:javascript_conceal_arrow_function ="?"

letg:javascript_conceal_noarg_arrow_function=""

letg:javascript_conceal_underscore_arrow_function=""

setconceallevel=1

React

Plug'mxw/vim-jsx'

letg:jsx_ext_required=0

Prettier

Plug'prettier/vim-prettier',{

'do':'yarn install',

'for':['javascript','typescript','css','less','scss','json','graphql']}

letg:prettier#config#bracket_spacing = 'true'

letg:prettier#autoformat = 0

autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphqlPrettierAsync

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 指令
    +關(guān)注

    關(guān)注

    1

    文章

    614

    瀏覽量

    36114
  • VIM
    VIM
    +關(guān)注

    關(guān)注

    0

    文章

    135

    瀏覽量

    15574

原文標(biāo)題:如何讓 Vim 成為我們的神器

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏
  • G量6区1

評(píng)論

相關(guān)推薦

PowerPCB進(jìn)行印制板設(shè)計(jì)的流程和一些注意事項(xiàng)

PowerPCB進(jìn)行印制板設(shè)計(jì)的流程和一些注意事項(xiàng) 概述  本文檔的目的在于說(shuō)明使用PADS的印制板設(shè)計(jì)軟件PowerPCB進(jìn)行印制板設(shè)計(jì)的流程和一些注意
發(fā)表于 03-15 09:58 ?1173次閱讀

高速電路過(guò)孔設(shè)計(jì)注意事項(xiàng)

,總結(jié)出高速PCb過(guò)孔設(shè)計(jì)一些注意事項(xiàng)。關(guān)鍵詞:過(guò)孔;寄生電容;寄生電感;非穿導(dǎo)孔技術(shù)[hide][/hide]
發(fā)表于 08-16 13:33

鏈接腳本對(duì)一些命令不了解

在學(xué)到i2c后,鏈接腳本變得復(fù)雜,最主要是對(duì)一些命令不了解;i2c.lds如下:SECTIONS { . = 0x00000000; .init : AT(0){ head.o init.o
發(fā)表于 04-25 04:09

使用WiFi模塊的一些細(xì)節(jié)及注意事項(xiàng)

注意事項(xiàng)使用WiFi模塊的一些細(xì)節(jié)及注意事項(xiàng)模塊使用3.3V供電,注意電源的穩(wěn)定,一些USB
發(fā)表于 07-19 08:42

說(shuō)明下代碼移植過(guò)程中注意事項(xiàng)

STM32F工程移植注意事項(xiàng)文檔由來(lái) 最近項(xiàng)目用到STM32F429,參考的是正點(diǎn)原子的STM32F4開(kāi)發(fā)板。本文主要說(shuō)明下代碼移植過(guò)程中注意事項(xiàng),記錄
發(fā)表于 08-04 08:52

使用WiFi的過(guò)程中總結(jié)一些經(jīng)驗(yàn)

簡(jiǎn)述在我們做項(xiàng)目開(kāi)發(fā),經(jīng)常會(huì)用到WiFi,這次給大家分享下我在使用WiFi的過(guò)程中總結(jié)一些經(jīng)驗(yàn),這次用到的是esp8266WiFi模塊
發(fā)表于 08-05 07:30

ARM定制指令的設(shè)計(jì)注意事項(xiàng)和決策

ARM?定制指令于2019年10月發(fā)布,現(xiàn)已在Cortex-M33和Cortex-M55處理器中提供。 在本文中,我們回顧了創(chuàng)建此架構(gòu)擴(kuò)展時(shí)的一些設(shè)計(jì)注意事項(xiàng)和決策,SoC設(shè)計(jì)人員部署基于此技術(shù)
發(fā)表于 08-23 06:39

LED安裝過(guò)程中注意事項(xiàng)

LED安裝過(guò)程中注意事項(xiàng) 1、關(guān)于LED清洗 當(dāng)用化學(xué)品清洗膠體時(shí)必須
發(fā)表于 05-09 09:00 ?879次閱讀

電子電路設(shè)計(jì)的一些技巧注意事項(xiàng)

模擬電子的相關(guān)知識(shí)學(xué)習(xí)教材資料——電子電路設(shè)計(jì)的一些技巧注意事項(xiàng)
發(fā)表于 09-27 15:19 ?0次下載

基于LED顯示屏使用注意事項(xiàng)及日常維護(hù)的一些總結(jié)

隨著LED顯示屏的廣泛使用,伴隨而來(lái)的是不斷增多的使用問(wèn)題。為了更好的使用LED顯示屏相關(guān)產(chǎn)品,我們對(duì)相關(guān)使用注意事項(xiàng)及日常維護(hù),做了一些可行性的總結(jié)。
的頭像 發(fā)表于 12-22 16:43 ?1.2w次閱讀

初次學(xué)習(xí)C51的一些誤區(qū)和注意事項(xiàng)詳細(xì)概述

這里講述一些初學(xué)者學(xué)習(xí)C51的一些誤區(qū)和注意事項(xiàng)。高手的特別應(yīng)用不包括在內(nèi)。
的頭像 發(fā)表于 10-04 12:46 ?2790次閱讀
初次學(xué)習(xí)C51的<b class='flag-5'>一些</b>誤區(qū)和<b class='flag-5'>注意事項(xiàng)</b>詳細(xì)概述

PCB板制作過(guò)程中注意事項(xiàng)

PCB板制作比較復(fù)雜,過(guò)程中經(jīng)常會(huì)出現(xiàn)一些問(wèn)題,有哪些地方需要去注意呢?本文主要從以下幾點(diǎn)注意事項(xiàng)去分析,希望對(duì)PCB工程師們有所幫助。
發(fā)表于 07-17 17:36 ?3443次閱讀

做好繞線功率電感器選型你不得不了解的內(nèi)容

做好繞線功率電感器選型你不得不了解的內(nèi)容 編輯:谷景電子 繞線功率電感器在電子器件起著重要的作用,用于濾除高頻噪聲和干擾信號(hào)。所以,正確選型繞線功率電感器是確保設(shè)備正常運(yùn)行的關(guān)鍵之。今天文章將為
的頭像 發(fā)表于 06-18 20:06 ?857次閱讀

電子元器件的焊接注意事項(xiàng)

焊接是電子元器件制造和組裝過(guò)程中非常重要的步,以下是一些焊接注意事項(xiàng)。
的頭像 發(fā)表于 10-16 14:31 ?3470次閱讀

PCBA加工過(guò)程中一定要注意事項(xiàng)

,是電子設(shè)備制造過(guò)程中個(gè)重要環(huán)節(jié)。在PCBA加工生產(chǎn)過(guò)程中,有一些注意事項(xiàng)需要特別關(guān)注,以確保產(chǎn)品質(zhì)量和生產(chǎn)效率。本文將從PCBA加工生
的頭像 發(fā)表于 12-20 09:43 ?658次閱讀

電子發(fā)燒友

中國(guó)電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會(huì)員交流學(xué)習(xí)
  • 獲取您個(gè)性化的科技前沿技術(shù)信息
  • 參加活動(dòng)獲取豐厚的禮品