[Python] 用Batch file修改Windows環境變數Path for Python

因為工作機上build code會用到2.7.x的python,偏偏我又在學3.4.x的語法,本來不想設全域變數,想說寫batch每次都設PATH就好,但偏偏Sublime Text的SublimeLinter套件又一定要有Python跟底下Scripts的全域變數,但每次都手動去設也很麻煩,就打算寫個batch來幫忙save/restore,執行下面的batch file,因為會修改到註冊檔,需要按右鍵用Administrator來執行。

[Cmd] Add Python Path.cmd

@set SAVE_RESTORE_FILE_NAME="c:\Non-Python.sav"
@set PATH_ENV_REG_PATH="HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment"

@if exist %SAVE_RESTORE_FILE_NAME% echo The backup file already exists! & @goto end

reg save %PATH_ENV_REG_PATH% %SAVE_RESTORE_FILE_NAME% /y

reg add %PATH_ENV_REG_PATH% /v path /d "%Path%;C:\Python34;C:\Python34\Scripts" /f

:end
@pause

[Cmd] Remove Python Path.cmd

@set SAVE_RESTORE_FILE_NAME="c:\Non-Python.sav"
@set PATH_ENV_REG_PATH="HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment"

@if not exist %SAVE_RESTORE_FILE_NAME% echo The backup file not exists! & goto end

reg restore %PATH_ENV_REG_PATH% %SAVE_RESTORE_FILE_NAME%

del /f %SAVE_RESTORE_FILE_NAME%

:end
@pause

[Sublime Text] Sublime Text 3 套件

Sublime Text 3快捷鍵:
1.      打開命令列「Ctrl + Shift + P
2.      打開控制台列「Ctrl + `
3.      內建全域搜尋「Ctrl + Shift + F
4.      檔案切換「Ctrl + <Tab>
5.      以檔名搜尋開啟檔案「Ctrl + P
6.      列出目前檔案函式列表「Ctrl + R
7.      Ctrl + F」搜尋後,用「F3」向後、「Shift + F3」向前找
8.      開啟剛才關閉的設定頁面「Ctrl + Shift + T
9.      游標點兩下圈選住所在單字,點三下圈選游標所在行。
10.  全螢幕編輯「Shift + F11
11.  選取項目後按下「Alt + F3」,可同時編輯所有選取項目
12.  游標移動至括號內開始或結束的位置「Ctrl + M
13.  圈選括號內開始到結束的位置「Ctrl + Shift + M
14.  放大縮小「Ctrl + <+>」「Ctrl + <->
Reference:

名稱:Package Control
功能:套件管理程式
說明:
1.      打開控制台列: 從選單的View -> Show Console,或是按快捷鍵「Ctrl + `
2.      貼上這個網站提供的安裝碼: https://packagecontrol.io/installation
3.      試著打開命令列: 按快捷鍵 Ctrl + Shift + P」,或是從選單的Tools -> Command Palette,找到"Package Control: Install Package",然後按下Enter鍵。接著輸入要安裝的套件名稱,再按下Enter鍵就會進行安裝。
Reference:

名稱:Alignment
功能:對齊程式碼
說明:
1.      選取好要對齊的區域,按下「Ctrl + Alt + A」就可以對齊了,會對齊到圈選的多行中,開頭起始字元(不算空白鍵)最靠右的那行,它的字元起始位置。
2.      按著Ctrl點游標,可以選擇很多輸入點,再按「Ctrl + Alt + A」就可以把所有游標點對齊到最靠右的那個游標點。
3.      需要注意的是,他對齊的方法是使用 <Tab>,而不是用空白取代,仍須在(Preferences -> Package Settings -> Alignment -> Settings - User中設定:
{
    "mid_line_tabs": true,
}
4.      在(Preferences -> Settings把基本<Tab>相關設定如下:
    "tab_size": 4,
    "translate_tabs_to_spaces": true,
    "detect_indentation": false,
    "use_tab_stops": false,
Reference:

名稱:Bracket​Highlighter
功能:把各種括號符號、標記特別高亮度顯示出來。
說明:
1.      游標移過去應該會把前後的符號特別高亮度呈現出來,假如感受不到效果,需要把"bracket_styles""style": 特別改成"hightlight"
2.      在(Preferences -> Package Settings -> Bracket​Highlighter -> Bracket​ Settings - User當中加入下面的設定,才會真正被enable起來,可以改在default就改在default,不能改才加在User設定當中。
{
    "bracket_styles": {
        "default": {
            "style": "hightlight"
        }
    }
}
Reference:

名稱:ChineseLocalizations
功能:選單中文介面
說明:
Help -> Language)有日語、簡體中文、繁體中文三種語言。
Reference:

名稱:Color Highlighter
功能:安裝完成後在檢視色碼的部分點選候可以即時瀏覽顏色
說明:
1.      輸入任一色碼,如:「#59ffeb」,指標指到就會顯示色碼顏色,比較適合在網頁相關程式上使用。
Reference:

名稱:ConvertToUTF8
功能:專換檔案編碼
說明:
1.      Preferences -> Package Settings -> ConvertToUTF8 -> Settings - Default)在設定檔中把BIG5移到GBK前,把繁體移到判斷的順序的最前面,避免轉換錯誤。
Reference:

名稱:CTags
功能:程式追蹤
說明:
1.      先從Package Control安裝完套件後,還需上官網下載Ctags主程式http://ctags.sourceforge.net/
2.      解壓縮到特定路徑,此處以Sublime安裝位置為例,在設定檔(Preferences -> Package Settings -> CTags -> Settings - User)中,加入設定,主要是指定Ctags主程式目錄。
{
    "command": "C:/Program Files/Sublime Text 3/ctags58/ctags.exe",
    "autocomplete": true
}
3.      可以在Function上面按右鍵選擇”Navigate to Definition” orCtrl + Shift + .」跳到定義處,再按”Jump Back” orCtrl + Shift + ,」跳回來。ST3本來就有類似功能,但CTags的比較準確。
4.      ”Find -> CTags -> Rebuild Tags”可以測試是否可以產生索引檔。
Reference:
使用說明:

名稱:DocBlockr
功能:程式註解輔助
說明:
1.      Python還需要另外安裝DocBlockr_Python
2.      ‘’’ + <Tab> or “”” + <Tab> 」自動產生註解(for Python
3.      # 」按 <enter>,自動產生下一行「# 」號註解
4.      /** + <Tab> 」自動產生註解 for C code),在Function前使用會把參數也都列出來。
Reference:

名稱:HighlightWords
功能:常駐(持續性)的標記某個單詞
說明:
1.      安裝完後,按「Ctrl + Alt + H」來常駐標記單字。
Reference:

名稱:Material Theme
功能:背景主題套件
說明:
1.      安裝完後,按(Preferences -> Package Settings -> Material Theme -> Activate)來選擇要啟用的主題。
Reference:

名稱:Side​Bar​Enhancements
功能:加強側邊列(檔案與資料夾)能的套件
Reference:

名稱:Sublime​Linter
功能:語法檢查
說明:
1.      Sublime​Linter安裝完後,還要安裝Sublime​Linter-pep8Sublime​Linter-pyflakes的補充套件,這邊只是安裝ST3跟檢查套件的介面,另外還需要在command line再透過pip去安裝pep8pyflakespylint的主程式。需要確定”C:\Python34””C:\Python34\Scripts”有加入全域”PATH中,才能有作用。
set PATH=C:\Python34;C:\Python34\Scripts;%PATH%
pip3 install pep8 pyflakes pylint
2.      設定(Preferences -> Package Settings -> Sublime​Linter -> Settings - User),可以根據喜好開關不同的檢查功能,@disable設成true可以把那項功能關掉,下面例子中把pylint關掉,pylint較少人用,是因為可能會抓出太多警告跟錯誤。
"linters": {
    "pep8": {
        "@disable": false,
    },
    "pyflakes": {
        "@disable": false,
    },
    "pylint": {
        "@disable": true,
    }
}
Reference:

名稱:SublimeCodeIntel
功能:智慧型語法、函式自動完成的套件
Reference:
名稱:TrailingSpaces
功能:自動清除每行程式碼後面的 <space>
說明:
1.      欲手動則設定快捷鍵設定檔,寫入JSON參數後存檔即可。
Preferences -> Key Bindings -> User
{ "keys": ["ctrl+shift+t"], "command": "delete_trailing_spaces" }
]
2.      在設定檔內加入下面設定,就可在每次儲存時自動清除空白。
Preferences -> Package Settings -> Trailing Spaces -> Settings - User
{
    "trailing_spaces_trim_on_save": true
}
Reference:

名稱:x86 and x86_64 assembly
名稱:NASM x​86 Assembly
功能:AssemblySublime上的解析
說明:
Reference:


[Python] Python 2 & 3 在Windows下共存的官方解決方法

首先我參考的是下面這篇文章:
https://python.freelycode.com/contribution/detail/139

重點就是裝了Python 2 & 3之後 (3的版本必須>=3.3),就會在C:\Windows\下面產生py.exe,直接在cmd下執行py就可以被抓到,不用再去設全域的環境變數PATH,假如有設定PATH,直接執行python檔案會根據後安裝的那個python版本去執行,下面是同個py檔透過py.exe去下不同參數導到不同版本的python:

py -2 2_1_1_Sample-3.py
py -3 2_1_1_Sample-3.py

下面是執行的結果:
這個範例檔案語法在python 2可pass,但在python 3會有error,而這個範例是先裝python 3.4.3再裝python 2.7.9,所以當設定全域PATH的時候會以2.7.9的為主。

[Blogger] 如何在網頁Blogger中插入程式碼

在Blogger文章當加入程式碼有幾種方法,首先是下面這種最簡單的方式,已經測試過且成功,但不能滿足我的需求,所以放棄;
http://chiumog.blogspot.tw/2015/02/blog-code-block.html

中間還有使用過很多種方式,但都沒有成功,下面這個連結的教學有讓我成功:
https://pjchender.blogspot.tw/2016/06/prism-syntax-highlighting.html

主要就是透過Prism選擇好要的風格跟支援的語言選好後下載js跟css:
Prismjs.com網址:http://prismjs.com/index.html

一、先把"prism.css"裡面的資料全都貼到 "主題->自訂->進階->新增CSS->新增自訂CSS" 當中,儲存後重新整理即可。(ps. 前後不需要加上<script>之類的標籤)

二、把prism.js的資料貼到 "版面配置->sidebar->新增小工具->HTML/JavaScript->內容" 裡面,有幾點要注意:
(1) 記住一定要新增到sidebar裡面才行,新增到footer會失敗。
(2) 在HTML/JavaScript加入的內容前後要加上<script>跟</script>。
(3) 選擇的語言種類不能太多,超過HTML/JavaScript可以輸入的字數就不能正常啟用了。

不是每個主題都可以套用這個方法,我用"簡單"跟"頂級企業"兩種主題是成功的,Emporio是失敗的。

使用上的範例如下:

<pre><code class="language-python line-numbers">
...
填入程式碼
...
</code></pre>
下面是顯示出python程式碼的結果:

a = input ("Input Number a: ")
b = input ("Input Number b: ")
if int (a) > int (b):
    print (a)
else:
    print (b)

假如程式碼中有特別符號,要在HTML Encoder先轉換過再po: https://www.opinionatedgeek.com/codecs/htmlencoder