【VI】用Vi/Vim/gVim處理字元的大小寫轉換(暨命令gu gU的靈活使用)

secooler發表於2009-04-15
今天在整理一些DBA維護指令碼的過程中,一次又一次的使用到了大小寫轉換功能,於是乎,整理總結到這個小文兒中,希望對大家有幫助。
舉一個在UNIX系統中修改輸入指令碼的例子的使用場景:
sys@ora10g> col table_name for a14
sys@ora10g> col comments for a55
sys@ora10g> select * from dict where table_name = 'dba_tables';

no rows selected

這裡之所以沒有查詢到資料,是因為'dba_tables'需要是大寫的樣子'DBA_TABLES'
下面展示一下secooler是如何呼叫vi編輯器進行修改的

sys@ora10g> define _editor=vi  --設定UNIX中SQLPLUS中的編輯器是vi
sys@ora10g> edit               --使用edit或ed命令就可以進入到vi編輯的介面
Wrote file afiedt.buf          --定位到dba_tables的頭部,
                               --使用“gUw”命令就可以將其變成大寫的DBA_TABLES啦
  1* select * from dict where table_name = 'DBA_TABLES'
sys@ora10g> /                  --再次執行就可以看到結果嘍

TABLE_NAME     COMMENTS
-------------- -------------------------------------------------------
DBA_TABLES     Description of all relational tables in the database

當然,對於偉大的vi編輯器,功能不僅僅是這個,功能還是很豐富的,請慢慢的觀看secooler的這個總結小文兒。

所有的操作都是圍繞著“gu"和“gU”另個命令展開的。
secooler的語法: [開始位置]gu/Gu[結束位置]
secooler的翻譯:
  [開始位置]  ---- 可以指定開始的位置,預設是游標的當前位置
  gu        ---- 把選擇範圍全部小寫
  gU        ---- 把選擇範圍全部大寫
  [結束位置]  ---- 可以跟著類似的w,6G,gg等定位到錯做的結束範圍

透過上面的語法翻譯,您可能已經暗暗的感受到這個命令的強大了吧,如果還沒有,不要著急,看下面慢慢分解(有“理”也要有“例”嘛):

1.“字”級別的大小寫轉換
  guwgue ---- 兩個命令功能是一樣的:游標後面的“字”會變成小寫
  guwgue ---- 兩個命令功能是一樣的:游標後面的“字”會變成大寫
  擴充套件一下下
  gu6wgu6e ---- 兩個命令功能是一樣的:游標後面的6個“字”會變成小寫
  gU6wgU6e ---- 兩個命令功能是一樣的:游標後面的6個“字”會變成小寫

2.“行”級別內容大小寫轉換
  guu/gUU   ---- 游標當前行統統變小寫/大寫
  gu0/gU0   ---- 游標位置到行首,統統變小寫/大寫(不包含游標當前的字母)
  gu$/gU$   ---- 游標位置到行尾,統統變小寫/大寫(包含游標當前的字母)
  guG/gUG   ---- 游標位置所在行到文章最後一行,統統變為小寫/大寫
  gu1G/gU1G ---- 游標位置所在行到文章第一行,統統變為小寫/大寫

3.整篇內容大小寫轉化
  1GguG/1GgUG 整篇文章統統變小寫/大寫(Vim和gVim中可以使用ggguG/gggUG
    secooler示意:1GguG 可以分三部分解釋 1G gu G
      1G或vim中的gg ---- 游標定位到檔案首
      gu            ---- 選定範圍統統變小寫
      G             ---- 一直操作到檔案結束部分

以上是我經常使用的大小寫轉換的方法,希望對大家有幫助。
再“買一送一”個小技巧,如果您只是想修改游標當前的字母的大小寫,可以使用“~”(鍵盤左上角數字1左邊的鍵)在反覆轉換。
工欲善其事必先利其器,強烈建議大家熟練使用Vi、Vim,Windows環境下可以使用gVim。
還有一個Windows下模擬Linux的軟體Cygwin,非常的優秀,我一直用它,對我提高工作效率起到了很大的幫助。

就到這裡,就到這裡,休息,休息一下……

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-589227/,如需轉載,請註明出處,否則將追究法律責任。