目錄
- Download
- VS Code Settings
- Disable auto update
- Hidden File in UI
- Terminal(ssh) env variable
- Hotkey
- Extension(vsix)
- Extension: sftp
- Extension: Remote-SSH
Download
https://update.code.visualstudio.com/{version}/win32-x64-archive/stable
ie.
https://update.code.visualstudio.com/1.61.1/win32-x64-archive/stable
VS Code Settings
設定 UI Lang
"Ctrl+Shift+P" 找 display
VS Code provides two different scopes for settings:
- User Settings - Settings that apply globally to any instance of VS Code you open.
- Workspace Settings - Settings stored inside your workspace and only apply when the workspace is opened.
Workspace Settings
A VS Code "workspace" is usually just your project root folder.
settings.json in the workspace root.
Workspace settings as well as debugging and task configurations are stored at the root in a .vscode folder.
User Settings
%APPDATA%\Code\User\settings.json
Preferences
File > Preferences > Settings (Ctrl+,)
Disable auto update
[A]
"Ctrl+," 後找 "update"
[B]
%APPDATA%\Code\User\settings.json
{ ... "update.mode": "none", }
Hidden File in UI
[A] "Ctrl+,"
search “files:exclude”
[B] .vscode/settings.json
{ "files.exclude": { "**/.terraform*": true, "**/*.pyc": true }, }
Terminal(ssh) env variable
%APPDATA%\Code\User\settings.json
{ "terminal.integrated.env.linux": { "GIT_AUTHOR_NAME": "888" } }
Hotkey
Ctrl + Shift + p # Command Palette
Ctrl + Shift + x # Managing extensions
Ctrl + Shift + e # Explorer
File Explorer
- ctrl + b # show / hide "Side Bar"
- ctrl + w # Close a file with
- ctrl + s # Save a file with
在 Explorer 介面時
- Ctrl + ` # Termail
Ctrl + , # Settings
Extension(vsix)
extension: .vsix
Extension: sftp
sftp
publisher:"liximomo"
Settings
Ctrl+Shift+P > run "SFTP: config" command
"SFTP expects to work at a folder."
> "Open Folder" 選 ".vscode" Folder, 之後就會建立 sftp.json
Configure
A basic configuration file will appear named sftp.json under the .vscode directory.
{ "name": "Profile Name", "host": "name_of_remote_host", "protocol": "ftp", "port": 21, "secure": true, "username": "username", "remotePath": "/public_html/project", <---- This is the path which will be downloaded if you "Download Project" "password": "password", "uploadOnSave": true }
Extension: Remote-SSH
它係透過系統的 ssh.exe 去建立 ssh shell 及 tunnel
- C:\Windows\System32\OpenSSH\ssh.exe
Marketplace
Repository
VS Code Server
By default, the "VS Code Server" is installed and maintained by the Remote
- No source code needs to be on your local machine
- runs commands and other extensions directly on the remote machine
Set the "remote.SSH.configFile" property in your User settings.json file
tree -L 3 .vscode-server/
.vscode-server/ ├── cli │ └── servers │ ├── lru.json │ └── Stable-863d2581ecda6849923a2118d93a088b0745d9d6 # 有個 node 在入面 ├── code-863d2581ecda6849923a2118d93a088b0745d9d6 # ELF 64-bit LSB pie executable ├── data │ ├── CachedProfilesData │ │ └── __default__profile__ │ ├── logs │ │ └── 20240331T131850 │ ├── Machine │ ├── machineid │ └── User │ ├── globalStorage │ ├── History │ └── workspaceStorage └── extensions └── extensions.json
Notes
1 GB RAM is required, at least 2 GB RAM and a 2-core CPU is recommended.
A compromised remote could use the VS Code Remote connection to execute code on your local machine.
Settings
Ctrl+,
remote.SSH.remotePlatform
configFile
%userprofile%/.ssh/config
mini
Host awscli HostName 192.168.88.171 User root
long
Host WAF-Server HostName N.N.N.N Port 22 User yourname IdentityFile MySshKeys/waf.pem
Host An easy-to-remember alias for your host machine.
HostName The hostname / IP address of the server
IdentityFile 的位置對應 %USERPROFILE%
"Always installed" extensions#
If there are extensions that you would like to always have installed on any SSH host, you can specify
which ones using the remote.SSH.defaultExtensions property in settings.json.
"Remote.SSH: Remote Server Listen On Socket"
/etc/ssh/sshd_config
AllowStreamLocalForwarding yes
Remote Environment Variables
# Default 有以下 Env TERM_PROGRAM=vscode
Kill
Ctrl + Shift + p
Remote-SSH: kill VS Code Server on Host
commit_id
Local VSCode: GUI > Help > about
Manual install VSCode on Remote
commit_id=ee2b180d582a7f601fa6ecfdad8d9fd269ab1884
mkdir -p ~/.vscode-server/bin/${commit_id}
cd !?
# Download url is: https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable
# -s, --silent, -S, --show-error, -L / --location
# Unzip: 62M -> 209M
curl -sSL "https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable" -o ${commit_id}.tar.gz
tar -zxf /tmp/vscode-server-linux-x64.tar.gz --strip 1
Login with ssh key
Host remotehost.yourcompany.com
...
IdentityFile C:\ssh_key\ssh.key
Key Format
# 錯誤
-----BEGIN OPENSSH PRIVATE KEY-----
# Ok
----BEGIN RSA PRIVATE KEY-----
Toubleshoot
F1 > Developer: Set Log Level
F1 > View: Open View > Log (Shared)
F1 > View: Open View > Log (Window)
F1 > View: Open View > Log (Remote Server)
Fold & un-Fold
Fold All: Ctrl + k, 0
Unfold All: Ctrl + k, j
Ctrl + k, 1: namspace
Ctrl + k, 2: class
Ctrl + k, 3: methods
Ctrl + k, 4: blocks
Ctrl + k, [ or Ctrl + k + ]: current cursor block
Indentation
Indent
減小縮排: Shift + Tab
Reformat indentation
Hotkey: Shift + Alt + F
* python 須要安 autopep8
Plugin
# python 的環境
ms-python.python
Workspace
Hotkey: Ctrl+,
Workspace Settings Location: <YOUR_FOLDER>\.vscode\settings.json
User Settings Location: %appdata%\Code
Auto Complete
要在 Marketplace 安裝 Pylance
IntelliSense(Pylance) # Microsoft
You can trigger IntelliSense in any editor window by typing Ctrl+Space or
by typing a trigger character (such as the dot character (.) in JavaScript).
Visual Studio Code: Intellisense not working
原因1: 未安 Pylance
Virtual Environment
1) Open the Command Palette
"Ctrl+Shift+P" in your VSCode
2) Locate your Virtual Environment
Python: select interpreter > Enter interpreter path > Find
your-virtual-env > bin > python3.
3) 自動啟用
Settings (Ctrl+,)
Search "python.terminal.activateEnvironment"
Tips
[1] How to prevent Visual Studio Code from always reopening the previous files or folders?
Ctrl+,
"window.restoreWindows": "none" # Default all
VSCode sleep infinity processes
pstree -p
├─sshd(694)─┬─sshd(3633)───bash(3653)───bash(3665) │ ├─sshd(4461)───bash(4506)───sleep(8288) │ ├─sshd(5280)───bash(5305)───pstree(8686) │ ├─sshd(8681)───sshd(8682) │ └─sshd(25919)───sftp-server(25922)
killall sleep
# 被 kill 後它會再出現
pstree -p | grep sleep
| |-sshd(4461)---bash(4506)---sleep(9212)