Vim中插入等差數值

2021-07-22 05:39:15 字數 1260 閱讀 8142

在任意行內插入有序數列

在18行的」my name is albert!」 的「albert」和「!」之間,縱向插入公差為2的等差數列。

1,先讓vim建立18行的「my name is albert!」

第1步:連續按兩次[esc]鍵,確保在一般模式。

第2步:鍵入18

第3步:[shift]+o(插入多行文字)

第4步:輸入「my name is albert!」

第5步:[esc]鍵

第6步:gg(回到首行)

首先我要製造出來乙個等差序列。這邊有多種方法實現。你可以參考用「巨集錄製」方法,在全文最下方空白部分製造一列有序數列,再將其拷貝黏貼到需要插入的列。

下面我們就討論比較巧妙的一種方法。在行首插入一列有序數列.

首先,您要先選中我們要新增數列的行數

第1步:通過「塊操作」ctrl+v進入塊操作。

第2步:這裡我們要為前18行插入數列,於是我們可以先gg回到行首

第3步:然後再鍵入18j,選中18列首字母。

第4步:然後執行命令:

:let i=1 | 『<,』>g/^/ s//\=i.』 『/ | let i+=2

詳解:

{ (a)let 即賦值命令。let i=1 給變數 i 賦值 1。let i+=2 給變數 i 的值增加 2

(b) | 在這裡用來連線先後依次執行的命令。

(c) 『<,』>指示的是命令作用域為所選中的文字。

(d) g// 即global命令,一段為模式,一段為命令。

(e) 模式「^」即正規表示式的行首。

(f) s/// 即substitude命令。s//\=i/ 的 為空,即預設當前模式,即 global 所給的模式「^」。 為 \=i,即替換成 i 的值。省卻了。

(g)i.』 』 用 .來連線字串(或者數字+字串)

所以上述命令的執行效果就是對選中的文字行開頭插入連續的行號,並在數字後面加上乙個空格。

}第1步:ctrl+v進入塊操作。

第2步:gg回到行首

第3步:然後再鍵入1l,猶豫我們的總函式是18行(兩位數)所以只要向右移動一格。

第4步:然後再鍵入18j,選中18列首字母。

第5步:按d鍵 剪下選中的「列塊」(注:y是複製,x是刪除)

第6步:刪除所有行首空格

:%s/^ *//

第7步:gg游標回文首,然後18l移動到!上

第8步:p黏貼。

等差陣列還原

最近在論壇看到乙個google面試題 原帖 url 有點興趣就動手試了一下,結果還比較滿意.我認為,本題的考點不在於如何將原陣列轉成目標陣列 迴圈除2就完了 而是在於如何將目標陣列還原到原陣列,因此,前段 沒有給出,只給出了如何還原的 以表我的思路 中傳遞的引數rate為原陣列中能被2整除的最小次數...

codevs等差數列

題目描述 description 給定n 1 n 100 個數,從中找出盡可能多的數使得他們能夠組成乙個等差數列.求最長的等差數列的長度.輸入描述 input description 第一行是乙個整數n,接下來一行包括了n個數,每個數的絕對值不超過10000000.輸出描述 output descr...

網易等差數列

如果乙個數列s滿足對於所有的合法的i,都有s i 1 s i d,這裡的d也可以是負數和零,我們就稱數列s為等差數列。小易現在有乙個長度為n的數列x,小易想把x變為乙個等差數列。小易允許在數列上做交換任意兩個位置的數值的操作,並且交換操作允許交換多次。但是有些數列通過交換還是不能變成等差數列,小易需...