VSCodeの単語一括選択は、vim の Normalモードを維持してくれるので、そのままインサートできる。
1) 単語選択(VSCode) shift + cmd + L
2) インサート(vim) i
単語選択「cmd + D」で選択した場合、Multi Cursorモードになる為、Normalモードに戻す必要がある。
1) 単語選択(VSCode) cmd + D
2) Normalモード v
3) インサート(vim) i
フレームワークや独自のライブラリの利用で、VSCode標準でない拡張子を利用することがある。 デフォルトでは任意のフォーマットできないため、ユーザ設定に「拡張子」「フォーマッタ」を記述する。
{
"files.associations": {
"*.phtml":"html"
}
}
VScode(Mac High Sierra)で PHP7 に対応(コード補完など)させるためには、PHP7をインストールして設定する。 brew か phpenv か迷うが自分は MacでWebサーバを利用せず bin だけ利用できればよいので brew にした。 XAMPPは起動とか面倒そうなのでやめた。
phpenvは Warning がでていたので、とりあえず brew でインストール
.bash_profile にパスを記述
export PATH="/usr/local/opt/php@7.2/bin:$PATH"
export PATH="/usr/local/opt/php@7.2/sbin:$PATH"
bash_profile にパスを記述 $ vi ~/.bash_profile
export PATH="$HOME/.phpenv/bin:$PATH"
eval "$(phpenv init -)"
ターミナル再起動後、php-buildインストール
PHP7と関係パッケージインストール
phpenv で PHPバージョン切替
.bash_profile にパスを記述
export PATH="/Users/yoo/.phpenv/bin:$PATH"
eval "$(phpenv init -)"
php7のパスを設定
"php.executablePath": "/usr/local/opt/php@7.2/bin/php",
"php.validate.executablePath": "/usr/local/opt/php@7.2/bin/php",
"php.validate.enable": true,
差し当たり自分にあったPHPプラグインをインストール - PHP IntelliSense - PHP Intelephense - PHP DocBlocker - PHP Debug *「PHP Intelephense」はコード整形が動作しなかった。 *「 PHP Intellisense - Crane」は定義ジャンプが自分向きでなかった。 *「php cs fixer」はエラーになるので利用しない。
OSX(High Sieera)でRcmdr をインストールしてもエラーとなった。
Rcmdr はX11アプリで起動するため、XQuartzをインストール&起動しておかなければいけない。 https://www.xquartz.org/ RStudioを再起動し、XQuartzを起動した状態で、Rcmdr を読み込むと起動した。
Debian の最新バージョンは python3 が Universe Repository に含まれている。
# aptitude update
# aptitude install python3
# aptitude install python3-pip
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ git clone https://github.com/yyuu/pyenv-pip-rehash.git ~/.pyenv/plugins/pyenv-pip-rehash
.bashrc に環境変数追加
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
pyenv 動作確認
$ pyenv
...
Some useful pyenv commands are:
commands List all available pyenv commands
local Set or show the local application-specific Python version
global Set or show the global Python version
shell Set or show the shell-specific Python version
install Install a Python version using python-build
uninstall Uninstall a specific Python version
rehash Rehash pyenv shims (run this after installing executables)
version Show the current Python version and its origin
versions List all Python versions available to pyenv
which Display the full path to an executable
whence List all Python versions that contain the given executable
...
$ pyenv install anaconda3-5.1.0
Downloading Anaconda3-5.1.0-Linux-x86_64.sh...
-> https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh
Installing Anaconda3-5.1.0-Linux-x86_64...
Installed Anaconda3-5.1.0-Linux-x86_64 to /home/yoo/.pyenv/versions/anaconda3-5.1.0
*デフォルト /tmp にインストールされるようなので容量には注意 ソースインストールの場合 Download Anaconda Distribution からダウンロードしてインストール
$ wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh
For full documentation, see: https://github.com/pyenv/pyenv#readme
$sh Anaconda3-5.1.0-Linux-x86_64.sh
$ pyenv global anaconda3-5.1.0
$ pyenv versions
system
* anaconda3-5.1.0 (set by /home/yoo/.pyenv/version)
$ conda update conda
Solving environment: done
....
The following packages will be downloaded:
package | build
---------------------------|-----------------
conda-4.5.0 | py36_0 1.0 MB
The following packages will be UPDATED:
conda: 4.4.10-py36_0 --> 4.5.0-py36_0
Proceed ([y]/n)?
....
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
これで、python コマンドでも python3が利用できる。
$ python --version
Python 3.6.4 :: Anaconda, Inc.
pip でなく Anaconda でライブラリをインストールする
$ conda install matplotlib
psycopg2 を利用して PostgreSQL に接続する
import numpy as np
import psycopg2 as pg
import psycopg2.extras
connection = pg.connect("host=localhost port=5432 dbname=db_name user=postgres")
cursor = connection.cursor(cursor_factory=psycopg2.extras.DictCursor)
cursor.execute("SELECT * FROM users")
results = cursor.fetchall()
values = []
for row in results:
values.append(dict(row))
print(values)
cursor.close()
connection.close()
Mac でも R 環境が利用できる。 ただ、XCodeを予めインストールしておいた方が良さそうだ。 (自分は予めXCodeを入れていたので未確認) * 2018/4 時点では「ElCapitan」対応だが、差し当たり「HighSierra」でも動作している。
The Comprehensive R Archive Network
RStudio コンソール等でプログラムを簡単に確認できる。
ホームに「.RProfile」を作成し以下を記述する *参考:RStudio for Mac OS X で日本語のプロットが上手くいかない場合の対処法
setHook(packageEvent("grDevices", "onLoad"),
function(...){
if(.Platform$OS.type == "windows")
grDevices::windowsFonts(sans ="MS Gothic",
serif="MS Mincho",
mono ="FixedFont")
if(capabilities("aqua"))
grDevices::quartzFonts(
sans =grDevices::quartzFont(
c("Hiragino Kaku Gothic Pro W3",
"Hiragino Kaku Gothic Pro W6",
"Hiragino Kaku Gothic Pro W3",
"Hiragino Kaku Gothic Pro W6")),
serif=grDevices::quartzFont(
c("Hiragino Mincho Pro W3",
"Hiragino Mincho Pro W6",
"Hiragino Mincho Pro W3",
"Hiragino Mincho Pro W6")))
if(capabilities("X11"))
grDevices::X11.options(
fonts=c("-kochi-gothic-%s-%s-*-*-%d-*-*-*-*-*-*-*",
"-adobe-symbol-medium-r-*-*-%d-*-*-*-*-*-*-*"))
grDevices::pdf.options(family="Japan1GothicBBB")
grDevices::ps.options(family="Japan1GothicBBB")
}
)
attach(NULL, name = "JapanEnv")
assign("familyset_hook",
function() {
winfontdevs=c("windows","win.metafile",
"png","bmp","jpeg","tiff","RStudioGD")
macfontdevs=c("quartz","quartz_off_screen","RStudioGD")
devname=strsplit(names(dev.cur()),":")[[1L]][1]
if ((.Platform$OS.type == "windows") &&
(devname %in% winfontdevs))
par(family="sans")
if (capabilities("aqua") &&
devname %in% macfontdevs)
par(family="sans")
},
pos="JapanEnv")
setHook("plot.new", get("familyset_hook", pos="JapanEnv"))
setHook("persp", get("familyset_hook", pos="JapanEnv"))
RStudio のコマンド
でパッケージをインストールできる。 例)
install.packages("knitr")
オープンソースの形態素解析エンジン 文法を解析できる。 MeCabから「mecab-0.996.tar.gz」(2018/3時点)をダウンロードしてソースインストール
RStudio のコンソールで以下を実行する
Mac(OSX)で gem install するとデフォルトではエラーになるので、XCodeコマンドラインをインストールしておく。
最新 ruby を利用したり、sudo など省きたい場合は、brew で別途 ruby をインストール・設定する。
PHP7.1 で JpGraph4.2.0 を利用すると gd_image.inc.php でエラーになる。
function SetAntiAliasing($aFlg=true) {
$this->use_anti_aliasing = $aFlg;
if( function_exists('imageantialias') ) {
imageantialias($this->img,$aFlg);
}
else {
JpGraphError::RaiseL(25128);//('The function imageantialias() is not available in your PHP installation. Use the GD version that comes with PHP and not the standalone version.')
}
}
imageantialias() が利用できないのが原因 PHP : imageantialias()
Debian のPHP7.1パッケージではダメで、PHP7.2 では動作した。
Google Apps Script で CSVデータを配列で処理してみる。
サンプルとしてCSVファイルは ・Google Drive内 ・SJISフォーマット ・フォルダとファイル名を指定(フォルダ名はGoogle Drive内でユニーク) ・CSVの内容は、first_name, last_name, email 形式で1行目はタイトル
function main() {
var rows = csvtoArray('フォルダ名', 'ファイル名');
for (var i = 1; i < rows.length; i++) {
var row = rows[i];
var first_name = row[0];
var last_name = row[1];
var email = row[1];
Logger.log(last_name);
Logger.log(first_name);
Logger.log(email);
}
}
function csvtoArray(folder_name, file_name) {
var folder = DriveApp.getFoldersByName(folder_name).next();
var file = folder.getFilesByName(file_name).next();
var csv = file.getBlob().getDataAsString("Shift_JIS");
var rows = Utilities.parseCsv(csv);
return rows;
}
getFoldersByName()、getFilesByName() のイテレートは横着して next() で最初のアイテムを取得 (GoogleDrive内で重複する場合、それなりの処理が必要)