Linux中vim編輯器的縮進的功能鍵

vim編程時,經常需要對代碼進行縮進處理,以增加程序的可讀性和后期的代碼維護.

可以采用多種方式達到縮進的目的:

???? 1) 命令模式(command mode)

???? 2) Visual模式(visual mode)

???? 2) 輸入模式(entry mode)

???? 3) 末行模式(last-line mode)

???? 4) 在/etc/vimrc有給予vim的環境配置, 一般地, 個性化的定制vim的功能,建議在~/.vimrc文件中進行配置(一般用戶可自行創建該文件).

?

命令模式:

>> 當前行增加一個單位縮進????????????????????? (即多少個空格為一個單位,為配置文件參數shiftwidth的值)
<< 當前行減少一個單位縮進????????????????????? (可以連續多次縮進多個單位長度)
#>> 當前行增加#個單位縮進
#<< 當前行減少#個單位縮進???????????????????? (6>>)

== 為自動排版,也可減少一個單位縮進

?

Visual模式:(在command mode下Ctrl + V切換)

???? 可將選定的單行或多行:

???????? > 增加一個單位縮進?????????????

???????? < 減少一個單位縮進????????????????????????????

???????? #> 增加#單位縮進?????????????

???????? #< 減少#單位縮進

?

輸入模式:

???????? Ctrl+T增加一個單位縮進

???????? Ctrl+D減小一個單位縮進

?

末行模式:

?????? startline, endline >??????? 將startline至endline增加一個單位縮進???? (經驗證,貌似不能出現#>)

?????? startline, endline <??????? 將startline至endline減少一個單位縮進

?

在配置文件~/.vimrc中添加個性化自動縮進的環境配置參數:

一般有以下的幾種:

autoindent: 新增加的行和前一行有相同的縮進形式;

smartindent: 1)每一行都和前一行有相同的縮進量;? ?
?????????????????? 2)當遇到右花括號"}"時,則取消了縮進形式;
?? ??? ??????????? 3)如果一行是以#開頭的,則不縮進;
?? ??? ??????????? 4)此外還增加了識別C語言關鍵字的功能;

cindent:?? 這是C語言的縮進形式,采用這樣的縮進方式的程序語言有:C,C++,Java等;
????????????? 當采用這種縮進格式時,vi就會自動的采用標準的C語言形式.

先進性:?? autoindent < smartindent? < cindent

可以用如下命令進行縮進形式的設置:(可在末行模式下操作)
set autoindent??????? 或 set ai
set smartindent????? 或 set si
set cindent???????????? 或 set ci

關閉縮進時:? set noautoindent?

???????????????? ...

與縮進(indent)相關的參數有:shiftwidth、tabstop、softtabstop、expandtab.

shiftwidth 操作(<<和>>)時縮進一個單位;
tabstop 一個tab鍵所占的空格數,linux 內核代碼建議每個tab占用8個空格;
softtabstop 敲入tab鍵時實際占有的空格數;
expandtab 輸入tab時自動將其轉化為空格;

? 說明tabstop、softtabstop、expandtab之間的關系:

1)三者均用于定義一次tab鍵所代表的空格數;
2)當定義了softtabstop時,tabstop和expandtab均以softtabstop為準;
3)即當softtabstop=4? 無論tabstop和expandtab為何值,最終都為4個空格作為一個單位.

????? vim ~/.vimrc

???

轉載于:https://www.cnblogs.com/ant-colonies/p/6268681.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373125.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373125.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373125.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JSF 2,PrimeFaces 3,Spring 3和Hibernate 4集成項目

本文展示了如何集成JSF2&#xff0c;PrimeFaces3&#xff0c;Spring3和Hibernate4技術。 它為Java開發人員提供了一個通用的項目模板。 另外&#xff0c;如果Spring不用于業務和數據訪問層&#xff0c;則可以提供JSF – PrimeFaces和Hibernate集成項目。 二手技術&#xff1a…

c語言編程文件中刪除數據結構,C語言數據結構實戰(一)順序表的插入與刪除

今天學習了思成老師的數據結構實戰教程 寫了一個順序表 插入和刪除的操作 把源碼共享給大家 一共包括list.c stu.h main.c list.h .h文件是頭文件 需要引入 具體的功能我都已經在代碼中寫明了list.h代碼如下&#xff1a;//線性表的定義在頭文件中實現#ifndef _LIST_H#define …

內存使用分析工具Valgrind簡單用法

轉載自 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html 暫時還未使用過&#xff0c;記錄下&#xff0c;記錄下&#xff0c;記錄下 Valgrind的主要作者Julian Seward剛獲得了今年的Google-OReilly開源大獎之一──Best Tool Maker。讓我們一起來看一下他的作品…

Lucene概述第一部分:創建索引

介紹 我最近一直在與開源搜索引擎Lucene合作 。 我不是專家&#xff0c;但是由于我只是瀏覽了一些相當稀疏的文檔并將應用程序從Lucene的很舊的版本遷移到了最新版本的2.4&#xff0c;所以我在總體上很清楚。 Lucene的文檔有點讓人難以想象&#xff0c;因此我想趁此機會在我腦海…

初識openstack

一、 什么是openstack&#xff1f; OpenStack是一個由NASA&#xff08;美國國家航空航天局&#xff09;和Rackspace合作研發并發起的&#xff0c;以Apache許可證授權的自由軟件和開放源代碼項目。 二、openstack前世今身 openstack是一個跟Eucalyptus,AWS(Amazon web Service)類…

c語言case多語句的取值,Switch Case語句中多個值匹配同一個代碼塊的寫法

C&num;&plus;JQuery&plus;&period;Ashx&plus;百度Echarts實現全國省市地圖和餅狀圖動態數據圖形報表的統計在目前的一個項目中,需要用到報表表現數據,這些數據有多個維度,需要同時表現出來,同時可能會有大量數據呈現的需求,經過幾輪挑選,最終選擇了百度的e…

php解決下單、抽獎并發導致的庫存負數的問題

我們知道數據庫處理sql是一條條處理的&#xff0c;假設購買商品的流程是這樣的&#xff1a; sql1:查詢商品庫存 if(庫存數量 > 0) { //生成訂單... sql2:庫存-1 } 當沒有并發時&#xff0c;上面的流程看起來是如此完美&#xff0c;假設同時兩個人下單&#xff0c;而…

在Spring中使用JDBCJobStore配置Quartz

我將開始一些有關Quartz Scheduler內部&#xff0c;提示和技巧的系列文章&#xff0c;這是第0章-如何配置持久性作業存儲。 在Quartz中&#xff0c;您基本上可以在將作業和觸發器存儲在內存中以及在關系數據庫中進行選擇&#xff08; Terracotta是最近添加的混合功能&#xff0…

rlwrap插件,實現sqlplus上下翻頁

oracle在Linux下&#xff0c;sqlplus中不能上下翻&#xff0c;最主要我經常打錯字&#xff01;嘿嘿 01、下載 RPM &#xff1a;http://rpmfind.net/linux/rpm2html/search.php?queryrlwrap tar.gz:https://fossies.org/linux/privat/rlwrap-0.42.tar.gz/ 百度云&#xff1a;h…

ice庫c語言例子,很不多的ICE架構入門學習例子

雖然使用傳統的SOCKET編程&#xff0c;我們可以更為清楚程序的性能&#xff0c;能夠更直接的操控SOCKET的設置&#xff0c;比如發送超時時間&#xff0c;接受BUFFER的大小&#xff0c;以及進行自己的協議加密。但是由于其調試成本較高&#xff0c;且不易于分布式部署ICE 作為一…

程序員的十個層次,你屬于哪一層?(轉)

自西方文藝復興以來&#xff0c;中國在自然科學方面落后西方很多&#xff0c;軟件領域也不例外。當然現在中國的許多程序員們對此可能有許多不同的意見&#xff0c;有些人認為中國的程序員水平遠落后于西方&#xff0c;有些則認為中國的程序員個人能力并不比西方的程序員差&…

操作系統基礎篇

程序運行的4個因素 (1).程序設計語言 (2).編譯系統 (3).操作系統 (4).指令集結構&#xff08;硬件系統&#xff09; 操作系統的定義&#xff1a;操作系統是掌控計算機上所有事情的軟件系統(硬件資源&#xff0c;軟件資源) 操作系統對內存&#xff0c;i/o&#xff0c;cpu&#x…

高效快速中值濾波算法c語言,快速中值濾波及c語言實現.docx

...快速中值濾波及c語言實現學生姓名&#xff1a; 劉 勇 學 號&#xff1a; 6100410218 專業班級&#xff1a; 數媒101【摘要】本文討論了用c語言在微機上實現中值濾波及快速算法&#xff0c;在程序設計的過程中充分考慮到程序運行的時間復雜度和空間復雜度的問題&#xff0e;解…

Arquillian 1.0.0.Final正式發布! 準備使用GlassFish和WebLogic! 殺死所有蟲子!

紅帽公司和JBoss社區今天宣布的1.0.0.Final發布的Arquillian &#xff0c;其屢獲殊榮的建在Java虛擬機&#xff08;JVM&#xff09;運行測試平臺。 Arquillian大大減少了編寫和執行Java中間件集成和功能測試所需的工作。 它甚至使測試工程師能夠解決以前認為無法測試或測試成本…

Jquery選擇器特殊字符問題

場景&#xff1a; $("#" AAA "")&#xff0c;AAA代表某表單ID 當AAA為普通字符串時&#xff0c;ok&#xff1b; 當AAA含有特殊符號時&#xff08;eg:a.b&#xff09;&#xff0c;獲取不到該對象&#xff1b; 原因&#xff1a;特殊符號會進行轉義&#xf…

qq五筆linux,QQ五筆 - 五筆小字典 QQ綁定很實用

九、 智能調頻、空碼檢索、詞序固定在QQ五筆中還有一些小亮點&#xff0c;比如它可以根據“最近輸入”、“輸入次數”對候選詞排序。同時為了加快檢索速度&#xff0c;默認只在常用字庫(GB2312)中檢索&#xff0c;只有出現空碼后才會繼續搜索容量更大的GBK字庫&#xff0c;很好…

DFS:C 小Y的難題(1)

解題心得&#xff1a; 1、在明確使用DFS之后一定要找到遞歸函數的出口、方向&#xff0c;以及遞歸的點&#xff08;在某個情況下開始遞歸&#xff09;(void 也可以return&#xff0c;但是沒有返回值)。遞歸時也要有遞歸的方向&#xff0c;最后都能夠達到遞歸的出口。 2、在DF…

使用ActiveMQ支持Spring Integration路由

正如我在上 一篇 文章中所討論的那樣 &#xff0c;Spring Integration&#xff08;SI&#xff09; 是在Spring Framework之上構建的路由框架 &#xff0c;它使您可以使用經過驗證的企業集成模式來通過消息傳遞解決系統集成問題。 配置好SI并執行路由和中介邏輯后&#xff0c;您…

quagga源碼分析--路由信息處理zebra-rib

對于各個協議生成的路由信息的處理屬于quagga中非常重要的一個功能&#xff0c;如何在內核進行路由增加&#xff0c;更新&#xff0c;刪除是一個復雜的過程。 quagga在thread任務調度中加入了一種工作隊列&#xff0c;work_queue&#xff0c;與內核的工作隊列類似&#xff0c;是…

android 關閉藍牙打電話功能,Android藍牙開發【八】hfp接聽、掛斷電話

繼續研究hfp相關功能。藍牙耳機可以控制手機接聽、拒接、掛斷電話&#xff0c;撥打電話等功能。本文主要分析下起這些操作的大致流程。在系統應用Bluetooth中com_android_bluetooth.cpp提供了多個回調方法&#xff0c;由hardware、協議棧回調過來。藍牙耳機的一些控制命令都會發…