用vi删除某一列
vi ? 中如何一次刪除多列??
如:?
123aaaaa?
!@#aaaaa?
ABCaaaaa?
+-/aaaaa?
在 ? vi ? 中如何一次刪除前 ? 3 ? 列呢?
最簡單的方法:
1. 先ctrl-v進行visual ? block模式
2. 移動光標,按列選擇你要刪除的列
3. 然后按x命令刪除。
具體講,光標先移動到第一行,第一列,然后按ctrl ? + ? v,
然后把光標移動到第三行,第三列,再按x鍵。
就可以刪除前三行前三列。
——————————
Ctrl+V, G 之后再右移光標選種幾列進行刪除x
如果不用G的話,可以手動自己移動光標進行選擇,最后刪除
當然如果用cut和awk也是可以實現的
比如刪除第10列,
文件有100列
cut -d ” ” -f 1-9,11-100 urfile
or:
awk ‘{$10=”",print}’ urfile
?
?
?
?
1、vi列刪除
方法一:
ctrl+v進入列編輯模式;
將光標定位子想要刪除的起始列;
移動光標至結束列(直接通過移動光標選中,對列不對齊時,可能比較長的行,無法全部選中,尤其是需要一直刪除到行末,按end可直接到達,在列不對齊情況下也可將內容全部選擇)
方法二:
1.定位光標;
2.按d;
3.按ctrl+v;
4.按end(直接到行末)或數字+方向鍵(指定需刪除的字符數)
注:在第四步,按鍵后會直接刪除選定內容。
?
2、vi?行刪除
1、單行刪除
單行刪除:1(待刪除行)d
光標所在行,dd
?
2、多行刪除
eg:
多行刪除,刪除1到10行
:1,10d
從某行開始至文本末尾全部刪除,刪除第8行至末尾
:8,$d
?
?
?
3、查找關鍵字刪除
1、刪除關鍵字所在行
要刪除文檔中含有字符reset_reg的所有行:
:g/reset_reg/d
會將含有reset_reg的全部行刪除。
4、刪除含有某些字符的行
:g/string/d
eg:路徑列表,刪除含trash的路徑
:g/trash/d
即可把列表中列出的含有回收站的統計的路徑刪除。
?
5、刪除空白行
方法一:
:g/^$/d
方法二:
:%s/^\n/s//g
方法三:
:g/^\n/s///g
方法四:
刪除多行空白行,保留一行空白行
:%s/^\n$//g
?
?
6、刪除重復行并排序
輸入如下內容:
?
7、刪除全文
?
輸入:
:g/.*/d
說明:.*為匹配任意單個字符。
?
7、部分內容刪除方式
x:刪除當前字符。
dw:刪除當前字。
dd:刪除當前行。
d$:刪除當前字符開始到行尾的所有字符。
d0:刪除前一個字符開始到行首的所有字符。
ndd:刪除當前行開始的連續n行。
dH:刪除從當前行到屏幕首行的內容。
dM:刪除從當前行到屏幕中間行的內容。
dL:刪除從當前行到屏幕末行的內容。
?
?
可視模式讓你可以選擇文件的一部分內容,以便作比如刪除,復制等工作。
進入可視模式
v
用v命令進入可視模式。當光標移動時,就能看到有一些文本被高亮顯示了,它們就是被選中的內容。
三種可視模式
v
一個字符一個字符地選。從按下v的那個字符起,一直到光標所移動到的位置之間的內容都被選中。
V
一行一行地選。從按下V的那行起,一直到光標所移動到的行之間的所有行都被選中。
Ctrl-v(可以用來刪除一列和多列)
它選中屏幕上的一個矩形區域。以按下Ctrl-v的位置為一個角,光標所在位置為它的對角。
離開可視模式
按下就會離開可視模式。
可視模式下的編輯
在可視模式下刪除文本
d
刪除所選中的部分。
D
刪除所選中部分所在的行。即使沒有把一行都選中,也把一行都刪除。
復制
v
復制選中的部分。
D
復制所選中部分所在行。即使沒有把一行都選中,也把一行都復制。
更改模式
可以隨時在可視模式中的三種之間切換,只需按進入想要切換到的模式的命令即可。
更改文本
c
刪除所選中的部分并切換到輸入模式。
C
刪除所選中的部分所在的行并切換到輸入模式。
合并行
當選中想合并在一起的行以后,按下
J(大寫)
就可以了。
程序員的命令
>
所選中的部分都縮進一個tab。
在所選中的部分刪除一個tab的縮進。
=
自動排列所選中的內容。
查看man
K
命令查看關鍵字的man page,在可視模式它會以選中的文本為關鍵字。
可視塊模式
通過Ctrl-v進入的模式為可視塊模式,它會選中一個矩形區域。
插入內容
I字符串
會在每一行所選中內容的開始前添加”字符串”
改變文本
c字符串
會把選中的內空刪除并進入輸入模式。你只需要在選中的第一行輸入一個字符串,當按下后所有行的選中部分都會和第一行一樣。這里的字符串中不能包含換行符,如果包含了換行符的話,它就不會這么神奇,就會根普通模式下的c一樣了。
C(大寫)
會直接刪除到行尾,其它與c一樣。
A(大寫)
會在選中的塊后面添加文本。它們是對齊的。
如果要在選中的塊緊接每行末尾添加內容,則需用$來指定選擇到行尾,而不是簡單地用光標。
替換內容
r
用來把選中的內容替換成同一個字符。
縮進
>
>將選中的塊縮進一個shiftwidth
固定鏈接 留言
Vim簡明教程5:窗口
九月 3, 2006 @ 9:17 am · 歸類于 Vim
打開一個新窗口
最簡單的打開新窗口的方法是
:split
它把一個窗口分成兩個,光標留在上面的那個窗口中。
通過
Ctrl-w+方向鍵
來在窗口間切換
比如
Ctrl-ww 或 Ctrl-w Ctrl-w
切換到下一個窗口;
Ctrl-wj 和 Ctrl-wk
分別切換到下一個窗口和上一個窗口。
要關閉窗口,用
:q 或 ZZ 或 Ctrl-wc
找開一個新窗口并在其中打開一個文件
:split 文件名
也可以給split命令分配一個初始命令,也就是說執行完split接著要做的
:split +命令 文件名
比如
:split +/printf three.c
命令會把當前窗口分成兩個然后在上面的窗口中查找printf這個字符串。
控制窗口大小
如果給split命令指定一個參數,則表示新找開窗口的高度
比如
:3split alpha.c
打開一個高度為3的窗口并在其中打開alpha.c
:new命令
:new
命令用起來就跟split差不多,只有一點不同:new命令會在新窗口中新建一個文件,而split只是在新窗口中打開原窗口中的內容。
分割并查看(Split and View)
:sview
命令新建一個窗口并且其中的內容是只讀的。
改變窗口大小
行數Ctrl-w+
把當前窗口高度增加”行數”行(如不指定行數,默認為1)
行數Ctrl-w-
把當前窗口高度減少”行數”行(如不指定行數,默認為1)
Ctrl-w=
讓所有窗口一樣高
行數Ctrl-w_
把當前窗口的高度設為”行數“,如不指定則把它最大化。
緩沖
Vim用緩沖來代表一個文件。當你在編緝一個文件時,只是在編緝它的緩沖。當你完成編輯保存時,Vim把緩沖中的內容保存進文件。當然,事情并不是 這么簡單。在Vim中設置的標記之類的也保存在緩沖中。你可以同時擁有多個緩沖,當你編輯多個文件時就是這樣。當你想要一個Vim窗口,并且想編輯多個文 件時,把這個窗口最大化是不管用的,因為這不是一個窗口,其它的窗口還是能看得見的。此時你可以把不編輯的緩沖隱藏(hide),用命令
:hide
一個緩沖有三種可能的狀態:
活動:顯示在屏幕上的窗口
隱藏:沒有顯示在屏幕上的在編輯的緩沖
不活動:緩沖沒有在編輯,但是保存著它的信息
第三種狀態需要多解釋一下,當你編輯另一個文件時,當前文件的內容就沒有用了。Vim就關掉它。但是它的一些其它信息可能還有用。(這一部分比較混亂,原文說得也不是很清楚,不懂也無所謂)
要查看緩沖的列表,用
:buffers
命令。輸出的第一列是緩沖編號,第二列是狀態,第三列是與緩沖對應的文件。
狀態共且以下幾種:
- 不活動的緩沖
h 隱藏的緩沖
% 當前緩沖
# 其它緩沖
+ 文件被編輯而未保存
選擇一個緩沖
:buffer 緩沖編號
如果你不知道緩沖的編號,可以用
:buffer 文件名
下面的命令分割窗品并編輯指定的緩沖
:sbuffer 緩沖編號
或
:sbuffer 文件名
還有很多關于緩沖的命令:
:bnext 去下一個緩沖
:count bnext 執行count次去下一個緩沖
:count sbnext 先分割窗口,然后執行:count bnext
:count bprevious 去上一個緩沖。如果指定了count,則執行count次
:count sbprevious 先分割窗口,然后執行:count bprevious
:count bNext 同:count bprevious
:count sbNext 同:count sbprevious
:blast 去最后一個緩沖
:sblast 先分割窗口再執行:blast
:brewind 去第一個窗口
:sbrewind 先分割窗口再執行:brewind
:bmodified count 去第count個編輯過的緩沖
:sbmodified count 等于:split加:bmodified
緩沖選項
通常當所有編輯一個文件的窗口都關掉后,這個窗口的緩沖就變成”不活動”,如果不想這樣,可以設置
:set hidden
讓它變成隱藏而不是不活動。
通常分割/緩沖相關的命令會分割當前窗口,但是也可以讓Vim在已經有窗口打開所指定的緩沖時,切換到那個窗口而不是新建一個:
:set switchbuf=useopen
更多關于switchbuf的內容參見23章。
固定鏈接 留言
Vim簡明教程4:塊和多文件編輯
九月 1, 2006 @ 11:04 am · 歸類于 Vim
這是我在看一本叫做Vim Tutorial的書時作的筆記,去掉了例子,作了一下總結。放上來作為一個Vim的小教程分享一下。本系列文章可轉載,但請注明出處:http://mingfal.bloggerspaces.com。
剪切,粘貼和復制
當你在刪除文字的時候,比如d, x之類的,被刪除的內容都被保存了下來。你可以通過
p
來粘貼它們。
交換字符
有時你會把兩個字母打反,比如把the打成teh。用
xp
命令就可以把它們調換位置。原理是這樣的,首先x會把e刪除并保存,p會把它粘貼到光標所在位置,也就是h之后。
關于粘貼的更多
p命令可以用多次。p命令把內容粘貼在光標之后,而
P
把內容粘貼在光標之前。
標記
Vim允許你在文本中做標記。命令
ma
會在光標所在處做一個名為a的標記。你最多可以在文本中做26個標記(a-z)。
要移動到一個標記,用命令
`標記
其中`是在鍵盤左上角數字一左邊的那個鍵
要移動到一個標記所在行的行首,用命令
‘標記
其中‘是單引號
標記在刪除大量文件內容人時很有用。比如
在你想要刪除的文本的開始處做標記ma
然后移動到想刪除文本的末尾,用d`a刪除從此位置到標記a間的內容。
注意,標記會跟著它所標記處的文本移動(比如在它之前插入或刪除了東西)
標記都在哪呢?
:marks
命令會列出所有標記的列表。
復制
y
命令用來復制,它的用法與d很相似。
復制一行
Y(大寫)
復制一行內容
管道
!動作 命令
會把由”動作”選中的文本作為”命令”的輸入,并用”命令”的輸出替換選中的文本。
舉個例子,sort命令會對一個文件的內容排序。如果想對當前正在編輯文件的前10行排序,可以這樣:
先把光標移動到第一行,然后
!10G sort
!!命令
命令把當前行作為“命令”的輸入。(這是一個把系統命令的輸出放到文件里的好方法)。
編輯另一個文件
:vi 或 :e
可以關閉當前文件,并打開新的文件。
如果當前文件沒有保存,則會出現提示。這時使用
:w
會保存未保存的文件。
View命令
:view 文件
會在Vim中以只讀方式打開文件。
處理多個文件
可以在調用Vim時指定多個參數以依次編輯多個文件
Vim 文件1 文件2 文件3 …
默認情況下Vim每次只會編輯一個文件,當編輯完一個文件時,
:next
命令會關閉光前文件打開下個文件開始編輯。
我在哪里
當你在編輯多個文件時有時會忘了自己在編輯哪個。
:args
命令會顯示當前正在編輯哪個文件。
編輯上一個文件
當要編輯上一個文件時,用命令
:previous 或 :Next。
編輯每一個或最后一個文件
要編輯第一個文件,用
:rewind
要編輯最后一個文件,用
:last
編輯兩個文件
當同時編輯兩個文件時,正在編輯的是當前文件,沒在編輯的會被當成“另一個文件”,在這兩個文件間切換要方便的多。用命令:
Ctrl+^
固定鏈接 留言
Vim簡明教程3:查找
九月 1, 2006 @ 10:55 am · 歸類于 Vim
這是我在看一本叫做Vim Tutorial的書時作的筆記,去掉了例子,作了一下總結。放上來作為一個Vim的小教程分享一下。本系列文章可轉載,但請注明出處:http://mingfal.bloggerspaces.com。
簡單查找
/要查找內容
用/向后查找,緊隨其后的要查找的內容。然后按下回車,Vim就會去為你找你想要的東西了。
要注意
.*%/\?!$ 還有空格
都有特殊意義,如果要查找的內容中包含這些字符,要在前面加上一個\。
要查找區配的下一處,用命令
\ 或 n
它們的作用是相同的。
查找歷史
查找命令可以允許你來查看查找的歷史,在輸入一個/以后,不要按回車,然后再按上下鍵就可以查看上一條或下一條查工歷史了。在某個歷史處如果按回車,就會查找此內容。
查找選項
高亮
:set hlsearch
命令可以讓所有的查找都高亮顯示匹配的部分。
:set nohlsearch
取消高亮選項
增量查找
一般情況下,Vim在查找時要等待用戶輸入整個要查找的內容,然后再去查找。增量查找則是不等用戶輸入完畢,就查找已輸入的部分。要使用它需要進行下面設置:
:set incsearch
如查取消,則
:set noincsearch
反向查找
?要查找的內容
命令從當前位置開始反向查找,即向文件的開始查找。
改變方向
N
命令可以改變查找的方向并查找改變方向后的下一處匹配。
基本的正則表達式
行首(^)和行尾($)
^表示一行的開始,include會匹配每一處的include,而^include只會匹配在行首的include。
$表示一行的結束,was$只會匹配在行末的was。
如果想要匹配只有一個詞the的行,用^the$。
匹配任意單個字符(.)
.匹配任一個字符,比如c.m表示以c開頭以m結尾的有三個字母的字符串。
匹配特殊字符
好多字符在正則表達式中有特殊含意。要匹配這一類字符,要在前面加一個\。比如,要匹配the.,就要用the\.
固定鏈接 留言
Vim簡明教程2:編輯得更快一些
八月 30, 2006 @ 12:43 pm · 歸類于 Vim
這是我在看一本叫做Vim Tutorial的書時作的筆記,去掉了例子,作了一下總結。放上來作為一個Vim的小教程分享一下。本系列文章可轉載,但請注明出處:http://mingfal.bloggerspaces.com。
按詞移動
w
按下w會前進一個詞。
b
按下b會后退一個詞。
這里,就像在Vim中的大部分情況下一樣,在這兩個命令前面加上一個數字可以讓它們重復做多次。
移動到行首或行末
$
$會讓你移動到所在行的末尾。
^
^會讓你移動到所在行的開始。也可以做相似的事。不過^會移動到第一個非空的字符處,而會移動到行首。
這兩個命令也接受數字參數,比如
2$
會移動到下一行末。
在行上查找
f要查找的字符
f用來在一行上查找一個字符并移動到該字符所在處。比如
fx
用來移動到此行當標后第一個x處。如果有一個數字參數,就可以指定移動到某個指定的匹配位置。
F
F用來向左查找。
移動到指定行
行號G
G命令會把你帶到用行號指定的行。如果使用沒有行號的G,將會移動到最后一行。
顯示當前所在位置
:set number
Vim的可制定性是很強的,所以你可以通過:set設定很多選項。number就是其中之一。它是一個布爾選項,用來控制是否在最左邊顯示行號。
:set number
可以把它打開。
:set nonumber
則可以關閉此選項。
Ctrl+g
Ctrl+g會顯示當然后在的位置。
向上和向下翻屏
Ctrl+u
會向上翻半屏
Ctrl+d
會向下翻半屏
刪除文本
dw
dw會刪除一個詞。你應該可以看得出來,這里的w代表的就是word(詞).其實d后面可以加好多東西來控制刪除的對象。比如:
d$
會刪除從當前位置到行末的所有內容。
數字放在哪
這里有一個疑問,如果想刪除三個詞,那么應該怎么辦?是d3w,還是3dw。其實它們都能做到,不過原理不太一樣。d3w是一次刪除三個詞,而3dw是執行三次刪除一個詞。其實這兩者可以混起來,比如2d3w。
改變文本
c
c用來改變文本。它的用法跟d一樣。
cc
用來刪除一行并進入輸入狀態。
cw
用來刪除一個詞并進入輸入狀態等。
但是cw跟dw有一個不同之處。dw刪除了一個詞以后,還刪除該詞后面的空格。而cw只是會刪除這個單詞,空格仍然保留。
.
.命令會重復上一次所做的刪除(d, x)或改變(c)命令。
合并行
J
J(大寫)將當下一行接在當前行后,并在兩者間插入一個空格來合并這兩行。
替換字符
r替換的字符
r命令把當標處的字符替換成在r命令中指定的字符。
更改大小寫
~
通過~可以把光標處的字符用它的大寫(如果現在是小寫)或小寫(如果現在是大寫)替換。
宏
Vim有著簡潔而強大的宏功能。
q宏名
按下 q+宏名 后會進入宏錄制狀態,也就是說,此后發生的一切操作都會記錄到名為“宏名”的宏中。如果名為“宏名”的宏已經存在,則將它覆蓋。
@宏名
會調用名為“宏名”的宏。
特殊字符
當要輸入特殊字符時,可以用
Ctrl+k特殊字符代號
可以通過命令
:digraph
來得到一個完整的對應表,來查看特殊符號所對應的代號。
比如,要輸入á, 則要通過下面的方法
Ctrl+ka’
固定鏈接 留言
Vim簡明教程1:基本編輯
八月 30, 2006 @ 12:37 pm · 歸類于 Vim
這是我在看一本叫做Vim Tutorial的書時作的筆記,去掉了例子,作了一下總結。放上來作為一個Vim的小教程分享一下。本系列文章可轉載,但請注明出處:http://mingfal.bloggerspaces.com。
開始之前要做的
touch ~/.Vimrc
這會創建空的~/.Vimrc文件,這會告訴Vim你想要讓Vim以Vim方式工作。如果不這樣做的話,Vim會以Vi兼空模式運行,會有好多有用的功能沒法使用。這也可以在Vim運行過程中通過
:set nocompatible
來實現。
第一運行Vim
gVim file.txt
會運行gvim(Vim的圖行化前端),并在其中打開file.txt文件
Vim命令
Vim
會讓你在終端打開Vim編輯,而不是像剛才那樣打開一個新的窗口。
模式
Vim是一個模式化的編輯器。也就是說,它在不同的模式下會有不同的表現。當最下面的一行是文件名或為空時表示正在普通模式。如果是–INSERT–表示是在編輯模式。而–VISUAL–則表示目前是可視化模式。
插入文本
i
鍵入i后會從普通模式轉變到編輯模式。此時輸入的東西將會作為文件的一部分。
當你編輯完畢后,按下就會從編輯模式轉回普通模式。同時,不管現在是在什么模式下,都會把你帶回普通模式。
移動光標
當你回到命令模式(即普通模式)時,可以用下面的鍵來移動光標
h(左), j(下), k(上), l(右)
這可能看上去比較奇怪,誰會用l去表示右???但是實際上這是有原因的。移動光標上是在編輯過程中經常要做的,而h , j, k, l就在放右手手指的地方,也就是說按這幾個鍵是最快的。當然,也可以用方向鍵來移動光標,不過那會大大減低你的編輯速度。
刪除字符
x
當你想刪除一個字符時,把光標移動到它上面,然后按下x鍵,它就會消失。
撤消和重做
u
在普通模式下按下u會撤消上一布的操作。
Ctrl+R
如果撤消的次數過多,按下 Ctrl+R 會重做上次撤消的操作。
U
U(大字)是一個特殊的撤消鍵,它會撤消在在最后編輯的行上所作的所有操作。
退出
ZZ
ZZ會退出Vim并對所編輯的文件保存。
取消修改
:q!
當你編輯完一個文件發現你并不想這樣編輯它時,:q! 會讓你退出Vim而不保存所作的修改。
追加
a
i會在光標所在安符前插入字符,而a會讓你在當標所在的位置之后繼續輸入內容。
刪除一行
dd
dd命令會刪除當前所在的一行內容。
新開始一行內容
o
o命令會在光標所在行下面加入一行,并將光標移動的此行的開始以供輸入。
O
如果想在光標所在行的上面加入一行,請使用命令O(大寫)
獲得幫助
:help
:help命令讓你可以進入和查看Vim的幫助。用ZZ退出幫助。同時可以用像在Vim一樣的h, j, k, l鍵來移動光標。幫助中會有一些被豎線括起來的詞,那其實是超級鏈接。用Ctrl+]就可以跟隨它,Ctrl+t用來后退。如果要查找某一特定主題的幫助,使用
:help 主題
同時
也會起到和:help一樣的效果。
重復命令
當要做多次同樣的操作時,可以用計數來加快這一過程。
9k
會讓你向上移動9行。通過在命令前加一個數字n,就可以執行這一命令n次。
Vim教程
Vim自帶了一份Vim教程
:vimtutor
會打開它。
?
總結
- 上一篇: 【golang】Go语言学习-selec
- 下一篇: svn常用命令集合