在 ubuntu server 上搭建 C++ 远程开发环境

  • 安装开发软件

    apt install build-essential
    apt install clang
    apt install cmake
    apt install git
    apt install subversion
    apt install ninja ninja-build
    apt install gcc-multilib g++-multilib lib32z1-dev
    
  • 安装并配置 samba

    apt install samba
    apt install smbclient
    cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
    
    emacs /etc/samba/smb.conf
    
    [share]
      comment = Share Folder require password
      browseable = yes
      path = /home/share
      create mask = 0777
      directory mask = 0777
      valid users = share
      force user = nobody
      force group = nogroup
      public = yes
      writable = yes
      available = yes
    
    groupadd share -g 6000
    useradd share -u 6000 -g 6000 -s /sbin/nologin -d /dev/null
    smbpasswd -a share
    
    mkdir /home/share
    chmod 777 /home/share
    /etc/init.d/smbd restart
    

emacs 在 ubuntu console 界面下快速启动

后台操作

  • C-z 将 emacs 切换到后台。 evil 模式下为 C-x C-z
  • fg 将最近后台任务切换到前台
  • jobs 查看后台任务列表
  • fg 1 将后台任务 1 切换到前台
  • bg 将任务切换到后台,一般在命令行最后加上 & bg

进程操作

  • ps -e | grep emacs 查看 emacs 进程号
  • kill pid 杀死 emacs 进程

emacs daemon

vim ~/.bashrc
export ALTERNATE_EDITOR=""
alias e="emacsclient -c"

spacemacs rectangle 操作

mark

  • rectangle-mark-mode C-x SPC

operations

  • open-rectangle c-x r o
  • kill-rectangle C-x r k
  • delete-rectangle C-x r d
  • yank-rectangle C-x r y
  • string-insert-rectangle unbound
  • string-rectangle C-x r t
  • number-to-register C-x r N

git 常用命令

  • 创建 git 库

    git init
    
  • 添加文件

    git add --all
    
  • 提交文件

    git commit -am "message"
    
  • 获取远程库

    git clone https://a.com/b.git
    
  • 从远程更新分支

    git pull
    
  • 向远程推送更新

    git push
    
  • 查看分支信息

    git branch -av
    
  • 创建分支,对应到远程分支

    git branch origin/v2.1
    git branch v2.1 remotes/origin/v2.1
    
  • 创建并切换到分支

    git checkout -b v2.1
    
  • 创建并切换到远程分支

    git checkout -t origin/v2.1
    
  • 查看当前状态

    git status
    
  • 清除本地修改

    git reset --hard
    
  • 修改远程仓库地址

    git remote set-url origin https://a.com/b.git
    
  • 将目录从 repo 中删除

    git rm --cached -r mydir
    
  • linux 下忽略文件权限修改

    git config --global core.fileMode false