除了excel還有什麼編輯器能快速輸入等差數列?

excel可以輸入一個100,一個102,然後下拉就出來104,106。。

這個編輯功能還挺常用的,問題是除了excel還有誰?


PowerShell 中,如下得到一個等差數列

0..($NumberOfTerms - 1) | ForEach-Object { $FirstTerm + $_ * $CommonDifference }

然後複製

0..($NumberOfTerms - 1) | ForEach-Object { $FirstTerm + $_ * $CommonDifference } | Set-Clipboard

舉例:

0..10 | % { 100 + $_ * 2 } | scb


Vim中先輸入一個數字, 比如100, 然後回到正常模式, 按qa進入宏錄製模式, yy複製, 按兩次ctrl + a 將數字遞增, 然後再按q退出宏模式, 接下來輸入100@a, 就可以見證奇蹟了.

說明:

  • qa, @a 這兩個命令中a是錄製的宏名, 可以替換為任意字母. 100@a表示將錄製的宏執行100次.

  • windows下可能ctrl + a映射到全選, 將_vimrc中的

source $VIMRUNTIME/mswin.vim

" behave mswin

兩句注釋掉就可以了.


vim和emacs表示這算個球?

sublime表示俺有python一行的事兒……

Atom表示俺有JS,不稀奇……


Vim + visIncr 插件:

技巧:Vim 的縱向編輯模式

https://vimeo.com/4457161 (視頻演示)

VisIncr - Produce increasing/decreasing columns of numbers, dates, or daynames : vim online


說下使用 Vim 編輯器的方法:

1. Vim 是支持 shell, python 以及 perl, lua 等一堆腳本語言的

for i in range(100,200,2):
print i

全選,輸入以下命令並回車

:"&<,"&>!python

全出來了有沒有?!

2. 使用 Vim 的宏記錄功能

i100&qqyyp&&q50@q

文字表達這個看上去有點費勁,其實蠻簡單的


還是說正經的吧...

vim 里,插入模式下

ctrl-r=range(1,9,2)

回車..

ctrl-r 是 ctrl + r..

--- 等差數列和下面的 Fibonacci 數列的分割線 ---

ctrl-r=map(range(1,10), "printf("%.0f",round(pow(1.61803,v:val)/2.236068))")

----------扯淡的答案分割線-----------

終端vim下回車20次,輸入:set number打開行號顯示, 選中全屏複製文本……


CRAN - Mirrors

l=1:100

如果要步長為2的

l2=1:100*2


你們啊,拿衣服。

說用Python的,考慮過沒裝Python的人嘛?

說用PowerShell的,考慮過Mac的感受嘛?

不管啥子系統,只要有GUI,那就一定有瀏覽器吧。

開任意瀏覽器按f12調出控制台,複製這些語句並粘貼進控制台:

======開始======

var n=[];for(i=100;i&<=200;i+=2)n.push(i);n;

======結束======

就算沒GUI,那也還有node嘛。

手機碼字不易,且看且珍惜。


水一個不是 editor 的(

(function (initial, gap, length) { return (new Array(length || 100)).fill(0).map(function(x,y){ return (initial || 0)+y*(gap || 1)}); })(0, 1)


Sublime Text, 裝 Text Pastry 插件

然後多選,ctrl+alt+n, i 就好了


bash sequence expression: {x..y[..incr]}

例如:

$ echo {100..200..2}

補充:

說到編輯器,怎能沒有vim ^-^,可以通過:r!命令獲取shell的輸出,如下:

:r!echo {100..200..2}

也可以通過vim自身提供的編程方法,如:

:let seq = getline(".")
:for i in range(100, 200, 2)
: let seq = seq . i . " "
:endfor
:call setline(".", seq)


:r!seq 1 2 10


忘記了,要裝python先。

print [2*x for x in range(1, 100) if x % 2 == 0]


Matlab之類數學軟體的,啥數列都能輸出,輸出成excel等各類格式也就一句命令的事


cmd里:

(for /l %i in (1,5,100) do echo.%i &>&> abc) (type abc | clip) del abc

然後就可以直接去ctrl+v了..


origin應該是8還是8.5以後就支持這個操作了。


LibreOffice Calc,和題主所說的那個軟體的操作相同,效果這樣:


GHCi 里輸入:

[100, 102 .. 200]


R里自帶的seq函數可以生成等差數列吧。

默認格式是seq(a,b,c),意味著生成一個首項為a,尾項為b,公差為c的等差數列

同時這等價於seq(from=a,to=b,by=c),這時候from,to,by三項可以隨意改變位置。

如果也可以把三者中任意一項換成length=t,表示生成數列的長度為t,可以是固定一個端點和公差來生成,也可以是固定兩個端點來平均化。


ultraedit

這是一個文本編輯器,它有一個列模式,可以快速輸入等差數列


推薦閱讀:

vim/gvim 有哪些實用技巧?
visual studio code 如何安裝插件?
VSCode打開時這幾個同樣名稱的進程分別有什麼作用?
vim或者emacs有什麼插件可以像ide那樣分析語法樹的嗎?
OSX 上免費的MarkDown編輯器,大家一般用的什麼?

TAG:文本編輯器 | 編程 | MicrosoftExcel | Vim | PowerShell |