107.05.05 rust 之路 05 型別

注意 Rust 為靜態語言 (static typing) 所以在編譯時期變數型別必須已知
但是又不需要囉嗦的每個都寫說是什麼型別,因為 Rust 有 Type inference 會自動推論

Rust 的資料型別有兩大類:純量 (Scalar)、複合型 (Compound)
純量有整數 (Integer)、浮點數 (Floating-Point)、Boolean、字元 (Character)
複合型有 tuple、陣列 (Array)
萬物形色多樣,卻又同由固定的基本元素構成,是型態構成型態?
Photo by Jeremy Thomas on Unsplash

107.05.05 rust 之路 04 變數

來了久等了,終於度過偏爆炸的一個禮拜 OuO
(明明就超過一個禮拜

這次主題應該偏簡單
會介紹變數 (Variable)、常數 (Constant)、Static Variable、Shadowing (遮蔽)

相對於地上的我們,天上星星的存在是接近永恆不變的
變與不變的道理....請參考前赤壁賦 (不要玩古文x
Photo by John Fowler on Unsplash

107.04.24 rust 之路 03 Cargo

Cargo 是 Rust 的專案管理神器
它可以幫你產生專案、編譯專案、下載專案的相依套件
再搭配 crates.io (Rust 社群的 package registry) 根本超方便 OuO

cargo 我查字典是貨物,而 crate 是貨箱,恩....好像有什麼感覺又沒有 OuO
Photo by chuttersnap on Unsplash

107.04.21 rust 之路 02 Hello World

就來第一個程式啦 OuO

之後講解的環境應該都是 win10 (作業系統) + cygwin (shell) + vim (編輯器)
Hello World
Photo by NASA on Unsplash

107.04.17 rust 之路 01 環境建置

Rust 支援的平台超多
基本上 mac、windows、linux 的 32、64 位元都有 std、rustc、cargo 全支援
完整版列表:Rust Platform Support

我覺得官方提供安裝流程很簡單 Install Rust
本篇只會有兩種環境建置過程 (因為我沒 mac

107.04.16 程式語言作業(二) diff

前言

程式語言的作業二是用 Lisp 寫一個 diff 程式

題外話
其實作業二有三小項可選,後面是寫該項目可以拿幾分
1: 80、2: 90、1+2: 100、3: 100
我懶得寫 1+2 而切那個好像還要說明一堆東西所以直接挑戰 3 也就是本篇主題啦

所謂 diff 程式就是可以比較兩個檔案的差異,如下圖
不要問我為啥有 end 這個東西,因為助教的說明文件就打這樣,可能是新版的 endl 吧(誤

107.04.15 rust 之路 00 語言介紹

首先,這裡的 Rust 是一種程式語言,不是 steam 上的遊戲 @@
道路應該要沒有盡頭,就像學習,以此自勉能持續
Photo by Amanda Sandlin on Unsplash

107.04.10 文件中程式碼高亮

有時候要在投影片或文書軟體輸入程式碼時很麻煩
像是格式會跑掉,或是沒有高亮
而這個線上工具 Online syntax highlighting 就可以解決此問題
網址:https://tohtml.com/


107.04.02 vim runner 介紹

aben20807/vim-runner
來,久等了,星起來,星起來 OuO

107.04.02 右鍵以 cygwin 開啟資料夾

win10 的 power shell 按著 shift + 滑鼠右鍵就會出現在選單中
每次要在特定資料夾開啟 cygwin 時都要用 cd 感覺頗麻煩=''=
然後就找到了 OuO

107.03.31 解決 visual studio 偵測到 'RuntimeLibrary' 不符

用到瘋掉 (x
cmake 後用visual studio 2017建置發生錯誤

主要應該是下面這一坨

3>libcpmtd.lib(xdateord.obj) : error LNK2038: 偵測到 'RuntimeLibrary' 不符: 'MTd_StaticDebug' 值與 'MDd_DynamicDebug' 值 (位於 main.obj) 不符
3>libcpmtd.lib(xwctomb.obj) : error LNK2005: __Getcvt 已在 msvcprtd.lib(MSVCP140D.dll) 中定義過了
3>libcpmtd.lib(winapisupp.obj) : error LNK2038: 偵測到 'RuntimeLibrary' 不符: 'MTd_StaticDebug' 值與 'MDd_DynamicDebug' 值 (位於 main.obj) 不符
3>libcpmtd.lib(StlCompareStringA.obj) : error LNK2038: 偵測到 'RuntimeLibrary' 不符: 'MTd_StaticDebug' 值與 'MDd_DynamicDebug' 值 (位於 main.obj) 不符
3>libcpmtd.lib(winapinls.obj) : error LNK2038: 偵測到 'RuntimeLibrary' 不符: 'MTd_StaticDebug' 值與 'MDd_DynamicDebug' 值 (位於 main.obj) 不符
3>libcpmtd.lib(StlCompareStringW.obj) : error LNK2038: 偵測到 'RuntimeLibrary' 不符: 'MTd_StaticDebug' 值與 'MDd_DynamicDebug' 值 (位於 main.obj) 不符
3>libcpmtd.lib(StlLCMapStringW.obj) : error LNK2038: 偵測到 'RuntimeLibrary' 不符: 'MTd_StaticDebug' 值與 'MDd_DynamicDebug' 值 (位於 main.obj) 不符
3>libcpmtd.lib(StlLCMapStringA.obj) : error LNK2038: 偵測到 'RuntimeLibrary' 不符: 'MTd_StaticDebug' 值與 'MDd_DynamicDebug' 值 (位於 main.obj) 不符
3>LINK : warning LNK4098: 預設的程式庫 'LIBCMTD' 與其他使用的程式庫衝突,請使用 /NODEFAULTLIB:library

107.03.13 vim surrounder 介紹

aben20807/vim-surrounder
同樣來一篇 surrounder OuO
星星都來吧 (x

107.03.13 vim commenter 介紹

aben20807/vim-commenter
感覺就算寫了 README、寫了 doc 還是沒人看啊 QuQ
雖然在這裡介紹也差不多 QuQ
有 GitHub 的可以順手按個星星之類的,我會很感激 QuQ
不過還是想用繁體中文寫一個超完整(?)的介紹
總之,目前寫了3個 plugin 了,沒意外就各來一篇 OuO

107.03.05 manjaro sysrq | reisub 安全重新開機

主要是在 manjaro 聽 vlc 聽到一半突然當機 @@
按什麼都沒反應
按 ctrl + alt + delete 當然也是沒反應 @@
只好按著電源鍵強制關機
但是這樣頗傷電腦
所以就找到 sysrq 這個東西 OuO
它的位置跟 prt sc 同一個

107.03.02 git push 免帳號密碼 | ssh key

基本上一個環境執行一次即可
但是步驟偏多,所以還是記錄個 OuO

<注意>請在自己熟悉的環境使用 ssh key,請勿在公共電腦使用

1. 檢查 ssh key
基本上都會顯示不存在,若已有,請先備份
$ cd ~/.ssh

107.03.02 解決 ale 的 gcc 不顯示錯誤 | 把 gcc 輸出改成英文

ale 是 vim 裡好用的即時偵錯插件
以前不知道為何 ale 中的 gcc 一直不能用,所以用 clang 就解決
但是本篇要來解決 gcc 的問題 !!!!

由於都沒有報錯誤訊息所以主要能夠排除是 ale 的問題

首先關於 linter 的設定,cpp 改成使用 g++
不要因為 cpp 後面的支援寫 gcc 就用 gcc
let g:ale_linters = {
            \   'cpp': ['g++']
            \}

產生一個有錯的 .cpp 檔
$ vim t.cpp

#include 
#include 
#include 
using namespace std;

int main()
{
    here
    return 0;
}

107.03.01 manjaro caps lock 換成 esc

之前有一篇 win10 版本的
106.07.26 win10 caps lock換成esc

<注意>
並不是caps lock 和 esc 交換
而是 caps lock 換成 esc,也就是說 caps lock、esc 都是 esc

因為按習慣了所以 manjaro 也來改一下 OuO
本篇也會提到如何使用登入自動執行 .sh 檔

首先我查到使用以下指令可以把 caps lock換成esc
$ setxkbmap -option caps:escape
直接在終端機執行即可

但是重新登入之後就要再重新輸入一次
就來使用登入執行的功能

107.03.01 vim +clipboard

vim 與系統剪貼簿互通相當重要
一般從系統剪貼簿要貼到 vim 可以使用 ctrl + shift + v
而從 vim 複製到系統剪貼簿可以使用 "+y
但是後者必須 vim 有支援 clipboard

使用下面指令可以查看 vim 所支援的配置
$ vim --version
只要看剪貼簿相關可使用
$ vim --version | grep clipboard

一般安裝 vim 時 (使用下面指令) 並不能使用系統剪貼簿
$ sudo pacman -S vim
也就是說不能使用 "+y 把選取的文字複製到剪貼簿中
其 vim --version 如下,可以看到 clipboard 前方是 "-"

107.03.01 線上工具 aaencode

把 javascript 轉碼成各種顏文字
算是有加密混淆的效果吧,不過頗可愛OuO
但是字數多超多就是了
網址:http://utf-8.jp/public/aaencode.html


107.03.01 線上工具 draw.io

最好用的線上流程圖繪製工具沒有之一
網址:https://www.draw.io/

^ Top