日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用vi删除某一列

發布時間:2025/3/21 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用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

會打開它。

?

總結

以上是生活随笔為你收集整理的用vi删除某一列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。