cs-self-learning/en/必学工具/Vim/index.html

35 lines
62 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content=CS自学指南><meta name=author content=PKUFlyingPig><link href=https://csdiy.wiki/en/%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/Vim/ rel=canonical><link href=../%E7%BF%BB%E5%A2%99/ rel=prev><link href=../Emacs/ rel=next><link rel=icon href=../../../images/favicon.ico><meta name=generator content="mkdocs-1.6.0, mkdocs-material-9.5.2"><title>Vim - csdiy.wiki</title><link rel=stylesheet href=../../../assets/stylesheets/main.50c56a3b.min.css><link rel=stylesheet href=../../../assets/stylesheets/palette.06af60db.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto+Slab:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto Slab";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script><script id=__analytics>function __md_analytics(){function n(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],n("js",new Date),n("config","G-KJB4RXSKZG"),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){this.value&&n("event","search",{search_term:this.value})}),document$.subscribe(function(){var a=document.forms.feedback;if(void 0!==a)for(var e of a.querySelectorAll("[type=submit]"))e.addEventListener("click",function(e){e.preventDefault();var t=document.location.pathname,e=this.getAttribute("data-md-value");n("event","feedback",{page:t,data:e}),a.firstElementChild.disabled=!0;e=a.querySelector(".md-feedback__note [data-md-value='"+e+"']");e&&(e.hidden=!1)}),a.hidden=!1}),location$.subscribe(function(e){n("config","G-KJB4RXSKZG",{page_path:e.pathname})})});var e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=G-KJB4RXSKZG",document.getElementById("__analytics").insertAdjacentElement("afterEnd",e)}</script><script>"undefined"!=typeof __md_analytics&&__md_analytics()</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=light-blue data-md-color-accent=deep-purple> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#vim class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class="md-header md-header--shadow" data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../../ title=csdiy.wiki class="md-header__button md-logo" aria-label=csdiy.wiki data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> csdiy.wiki </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Vim </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme=default data-md-color-primary=light-blue data-md-color-accent=deep-purple aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5c-.84 0-1.65.15-2.39.42L12 2M3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29L3.34 7m.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14L3.36 17M20.65 7l-1.77 3.79a7.023 7.023 0 0 0-2.38-4.15l4.15.36m-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29L20.64 17M12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44L12 22Z"/></svg> </label> <input class=md-option data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme=slate data-md-color-primary=cyan data-md-color-accent=deep-purple aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3 3.19.09m3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95 2.06.05m-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31Z"/></svg> </label> </form> <script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <div class=md-header__option> <div class=md-select> <button class="md-header__button md-icon" aria-label="Select language"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"/></svg> </button> <div class=md-select__inner> <ul class=md-select__list> <li class=md-select__item> <a href=../../../%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/Vim/ hreflang=zh class=md-select__link> 简体中文 </a> </li> <li class=md-select__item> <a href=./ hreflang=en class=md-select__link> English </a> </li> </ul> </div> </div> </div> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg> </label> <nav class=md-search__options aria-label=Search> <a href=javascript:void(0) class="md-search__icon md-icon" title=Share aria-label=Share data-clipboard data-clipboard-text data-md-component=search-share tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91 1.61 0 2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08Z"/></svg> </a> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/pkuflyingpig/cs-self-learning/ title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 496 512"><!-- Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> </div> <div class=md-source__repository> cs-self-learning </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../../ title=csdiy.wiki class="md-nav__button md-logo" aria-label=csdiy.wiki data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg> </a> csdiy.wiki </label> <div class=md-nav__source> <a href=https://github.com/pkuflyingpig/cs-self-learning/ title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 496 512"><!-- Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> </div> <div class=md-source__repository> cs-self-learning </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../ class=md-nav__link> <span class=md-ellipsis> Foreword </span> </a> </li> <li class=md-nav__item> <a href=../../%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/ class=md-nav__link> <span class=md-ellipsis> How To Use The Book </span> </a> </li> <li class=md-nav__item> <a href=../../CS%E5%AD%A6%E4%B9%A0%E8%A7%84%E5%88%92/ class=md-nav__link> <span class=md-ellipsis> Guideline </span> </a> </li> <li class="md-nav__item md-nav__item--active md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4 checked> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Productivity Toolkit </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=true> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Productivity Toolkit </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../%E7%BF%BB%E5%A2%99/ class=md-nav__link> <span class=md-ellipsis> GFW </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Vim </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Vim </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#why-vim class=md-nav__link> <span class=md-ellipsis> Why Vim </span> </a> </li> <li class=md-nav__item> <a href=#how-to-learn-vim class=md-nav__link> <span class=md-ellipsis> How to learn Vim </span> </a> </li> <li class=md-nav__item> <a href=#remapping-keys class=md-nav__link> <span class=md-ellipsis> Remapping Keys </span> </a> </li> <li class=md-nav__item> <a href=#recommended-references class=md-nav__link> <span class=md-ellipsis> Recommended References </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../Emacs/ class=md-nav__link> <span class=md-ellipsis> Emacs </span> </a> </li> <li class=md-nav__item> <a href=../Git/ class=md-nav__link> <span class=md-ellipsis> Git </span> </a> </li> <li class=md-nav__item> <a href=../GitHub/ class=md-nav__link> <span class=md-ellipsis> GitHub </span> </a> </li> <li class=md-nav__item> <a href=../GNU_Make/ class=md-nav__link> <span class=md-ellipsis> GNU Make </span> </a> </li> <li class=md-nav__item> <a href=../CMake/ class=md-nav__link> <span class=md-ellipsis> CMake </span> </a> </li> <li class=md-nav__item> <a href=../LaTeX/ class=md-nav__link> <span class=md-ellipsis> LaTeX </span> </a> </li> <li class=md-nav__item> <a href=../Docker/ class=md-nav__link> <span class=md-ellipsis> Docker </span> </a> </li> <li class=md-nav__item> <a href=../Scoop/ class=md-nav__link> <span class=md-ellipsis> Scoop </span> </a> </li> <li class=md-nav__item> <a href=../workflow/ class=md-nav__link> <span class=md-ellipsis> Notes Workflow </span> </a> </li> <li class=md-nav__item> <a href=../tools/ class=md-nav__link> <span class=md-ellipsis> Useful Tools </span> </a> </li> <li class=md-nav__item> <a href=../thesis/ class=md-nav__link> <span class=md-ellipsis> Thesis Writing </span> </a> </li> <li class=md-nav__item> <a href=../%E4%BF%A1%E6%81%AF%E6%A3%80%E7%B4%A2/ class=md-nav__link> <span class=md-ellipsis> Information Retrieval </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../%E5%A5%BD%E4%B9%A6%E6%8E%A8%E8%8D%90/ class=md-nav__link> <span class=md-ellipsis> Book Recommendation </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> Fundamental Mathematics </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> Fundamental Mathematics </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E6%95%B0%E5%AD%A6%E5%9F%BA%E7%A1%80/MITmaths/ class=md-nav__link> <span class=md-ellipsis> MIT18.01/18.02: Calculus </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E5%AD%A6%E5%9F%BA%E7%A1%80/MITLA/ class=md-nav__link> <span class=md-ellipsis> MIT18.06: Linear Algebra </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E5%AD%A6%E5%9F%BA%E7%A1%80/information/ class=md-nav__link> <span class=md-ellipsis> MIT6.050J: Information theory and Entropy </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Advanced Mathematics </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Advanced Mathematics </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E6%95%B0%E5%AD%A6%E8%BF%9B%E9%98%B6/CS70/ class=md-nav__link> <span class=md-ellipsis> UCB CS70: discrete Math and probability theory </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E5%AD%A6%E8%BF%9B%E9%98%B6/CS126/ class=md-nav__link> <span class=md-ellipsis> UCB CS126: probability theory </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E5%AD%A6%E8%BF%9B%E9%98%B6/6.042J/ class=md-nav__link> <span class=md-ellipsis> MIT 6.042J: Mathematics for Computer Science </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E5%AD%A6%E8%BF%9B%E9%98%B6/numerical/ class=md-nav__link> <span class=md-ellipsis> MIT18.330: Introduction to numerical analysis </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E5%AD%A6%E8%BF%9B%E9%98%B6/convex/ class=md-nav__link> <span class=md-ellipsis> Standford EE364A: Convex Optimization </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E5%AD%A6%E8%BF%9B%E9%98%B6/The_Information_Theory_Pattern_Recognition_and_Neural_Networks/ class=md-nav__link> <span class=md-ellipsis> The Information Theory, Pattern Recognition, and Neural Networks </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8> <label class=md-nav__link for=__nav_8 id=__nav_8_label tabindex=0> <span class=md-ellipsis> Fundamental Programming </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_8_label aria-expanded=false> <label class=md-nav__title for=__nav_8> <span class="md-nav__icon md-icon"></span> Fundamental Programming </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/MIT-Missing-Semester/ class=md-nav__link> <span class=md-ellipsis> MIT-Missing-Semester </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/DeCal/ class=md-nav__link> <span class=md-ellipsis> Sysadmin DeCal </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8_3> <label class=md-nav__link for=__nav_8_3 id=__nav_8_3_label tabindex=0> <span class=md-ellipsis> Python Language </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_8_3_label aria-expanded=false> <label class=md-nav__title for=__nav_8_3> <span class="md-nav__icon md-icon"></span> Python Language </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Python/CS61A/ class=md-nav__link> <span class=md-ellipsis> UCB CS61A: Structure and Interpretation of Computer Programs </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Python/CS50P/ class=md-nav__link> <span class=md-ellipsis> CS50P: CS50's Introduction to Programming with Python </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8_4> <label class=md-nav__link for=__nav_8_4 id=__nav_8_4_label tabindex=0> <span class=md-ellipsis> C Language </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_8_4_label aria-expanded=false> <label class=md-nav__title for=__nav_8_4> <span class="md-nav__icon md-icon"></span> C Language </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/C/CS50/ class=md-nav__link> <span class=md-ellipsis> Harvard CS50: This is CS50x </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/C/Duke-Coursera-Intro-C/ class=md-nav__link> <span class=md-ellipsis> Duke University: Introductory C Programming Specialization </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8_5> <label class=md-nav__link for=__nav_8_5 id=__nav_8_5_label tabindex=0> <span class=md-ellipsis> C++ Language </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_8_5_label aria-expanded=false> <label class=md-nav__title for=__nav_8_5> <span class="md-nav__icon md-icon"></span> C++ Language </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/cpp/AUT1400/ class=md-nav__link> <span class=md-ellipsis> AmirKabir University of Technology AP1400-2: Advanced Programming </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/cpp/CS106L/ class=md-nav__link> <span class=md-ellipsis> Stanford CS106L: Standard C++ Programming </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/cpp/CS106B_CS106X/ class=md-nav__link> <span class=md-ellipsis> Stanford CS106B/X </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8_6> <label class=md-nav__link for=__nav_8_6 id=__nav_8_6_label tabindex=0> <span class=md-ellipsis> Java Language </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_8_6_label aria-expanded=false> <label class=md-nav__title for=__nav_8_6> <span class="md-nav__icon md-icon"></span> Java Language </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Java/MIT%206.092/ class=md-nav__link> <span class=md-ellipsis> MIT 6.092: Introduction To Programming In Java </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8_7> <label class=md-nav__link for=__nav_8_7 id=__nav_8_7_label tabindex=0> <span class=md-ellipsis> Rust Language </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_8_7_label aria-expanded=false> <label class=md-nav__title for=__nav_8_7> <span class="md-nav__icon md-icon"></span> Rust Language </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Rust/CS110L/ class=md-nav__link> <span class=md-ellipsis> Stanford CS110L: Safety in Systems Programming </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Rust/cs431/ class=md-nav__link> <span class=md-ellipsis> KAIST CS431: Concurrent Programming </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8_8> <label class=md-nav__link for=__nav_8_8 id=__nav_8_8_label tabindex=0> <span class=md-ellipsis> Functional Programming </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_8_8_label aria-expanded=false> <label class=md-nav__title for=__nav_8_8> <span class="md-nav__icon md-icon"></span> Functional Programming </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Functional/CS3110/ class=md-nav__link> <span class=md-ellipsis> Cornell CS3110: OCaml Programming Correct + Efficient + Beautiful </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Functional/Haskell-MOOC/ class=md-nav__link> <span class=md-ellipsis> Haskell MOOC </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_9> <label class=md-nav__link for=__nav_9 id=__nav_9_label tabindex=0> <span class=md-ellipsis> Fundamental Electronics </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_9_label aria-expanded=false> <label class=md-nav__title for=__nav_9> <span class="md-nav__icon md-icon"></span> Fundamental Electronics </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E7%94%B5%E5%AD%90%E5%9F%BA%E7%A1%80/EE16/ class=md-nav__link> <span class=md-ellipsis> EE16A&B: Designing Information Devices and Systems I&II </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%94%B5%E5%AD%90%E5%9F%BA%E7%A1%80/signal/ class=md-nav__link> <span class=md-ellipsis> UCB EE120 : Signal and Systems </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%94%B5%E5%AD%90%E5%9F%BA%E7%A1%80/Signals_and_Systems_AVO/ class=md-nav__link> <span class=md-ellipsis> MIT 6.007 Signals and Systems </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_10> <label class=md-nav__link for=__nav_10 id=__nav_10_label tabindex=0> <span class=md-ellipsis> Data Structures and Algorithms </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_10_label aria-expanded=false> <label class=md-nav__title for=__nav_10> <span class="md-nav__icon md-icon"></span> Data Structures and Algorithms </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/CS61B/ class=md-nav__link> <span class=md-ellipsis> UCB CS61B: Data Structures and Algorithms </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/Algo/ class=md-nav__link> <span class=md-ellipsis> Coursera: Algorithms I & II </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/6.006/ class=md-nav__link> <span class=md-ellipsis> MIT 6.006: Introduction to Algorithms </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/6.046/ class=md-nav__link> <span class=md-ellipsis> MIT 6.046: Design and Analysis of Algorithms </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/CS170/ class=md-nav__link> <span class=md-ellipsis> UCB CS170: Efficient Algorithms and Intractable Problems </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_11> <label class=md-nav__link for=__nav_11 id=__nav_11_label tabindex=0> <span class=md-ellipsis> Software Engineering </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_11_label aria-expanded=false> <label class=md-nav__title for=__nav_11> <span class="md-nav__icon md-icon"></span> Software Engineering </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/6031/ class=md-nav__link> <span class=md-ellipsis> MIT 6.031: Software Construction </span> </a> </li> <li class=md-nav__item> <a href=../../%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/CS169/ class=md-nav__link> <span class=md-ellipsis> UCB CS169: software engineering </span> </a> </li> <li class=md-nav__item> <a href=../../%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/17803/ class=md-nav__link> <span class=md-ellipsis> CMU 17-803: Empirical Methods </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_12> <label class=md-nav__link for=__nav_12 id=__nav_12_label tabindex=0> <span class=md-ellipsis> Computer Systems Principles </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_12_label aria-expanded=false> <label class=md-nav__title for=__nav_12> <span class="md-nav__icon md-icon"></span> Computer Systems Principles </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F%E5%9F%BA%E7%A1%80/CSAPP/ class=md-nav__link> <span class=md-ellipsis> CMU 15-213: CSAPP </span> </a> </li> <li class=md-nav__item> <a href=../../%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F%E5%9F%BA%E7%A1%80/CS110/ class=md-nav__link> <span class=md-ellipsis> Stanford CS110: Principles of Computer Systems </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_13> <label class=md-nav__link for=__nav_13 id=__nav_13_label tabindex=0> <span class=md-ellipsis> Computer Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_13_label aria-expanded=false> <label class=md-nav__title for=__nav_13> <span class="md-nav__icon md-icon"></span> Computer Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/N2T/ class=md-nav__link> <span class=md-ellipsis> Coursera: Nand2Tetris </span> </a> </li> <li class=md-nav__item> <a href=../../%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/CS61C/ class=md-nav__link> <span class=md-ellipsis> UCB CS61C: Great Ideas in Computer Architecture </span> </a> </li> <li class=md-nav__item> <a href=../../%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/DDCA/ class=md-nav__link> <span class=md-ellipsis> ETHz: Digital Design and Computer Architecture </span> </a> </li> <li class=md-nav__item> <a href=../../%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/CA/ class=md-nav__link> <span class=md-ellipsis> ETHz: Computer Architecture </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_14> <label class=md-nav__link for=__nav_14 id=__nav_14_label tabindex=0> <span class=md-ellipsis> Operating Systems </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_14_label aria-expanded=false> <label class=md-nav__title for=__nav_14> <span class="md-nav__icon md-icon"></span> Operating Systems </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/MIT6.S081/ class=md-nav__link> <span class=md-ellipsis> MIT 6.S081: Operating System Engineering </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/CS162/ class=md-nav__link> <span class=md-ellipsis> UCB CS162: Operating System </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/NJUOS/ class=md-nav__link> <span class=md-ellipsis> NJU OS: Operating System Design and Implementation </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/HITOS/ class=md-nav__link> <span class=md-ellipsis> HIT OS: Operating System </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_15> <label class=md-nav__link for=__nav_15 id=__nav_15_label tabindex=0> <span class=md-ellipsis> Distributed Systems </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_15_label aria-expanded=false> <label class=md-nav__title for=__nav_15> <span class="md-nav__icon md-icon"></span> Distributed Systems </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E5%B9%B6%E8%A1%8C%E4%B8%8E%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/CS149/ class=md-nav__link> <span class=md-ellipsis> CMU 15-418/Stanford CS149: Parallel Computing </span> </a> </li> <li class=md-nav__item> <a href=../../%E5%B9%B6%E8%A1%8C%E4%B8%8E%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/MIT6.824/ class=md-nav__link> <span class=md-ellipsis> MIT 6.824: Distributed System </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_16> <label class=md-nav__link for=__nav_16 id=__nav_16_label tabindex=0> <span class=md-ellipsis> Computer Security </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_16_label aria-expanded=false> <label class=md-nav__title for=__nav_16> <span class="md-nav__icon md-icon"></span> Computer Security </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/CS161/ class=md-nav__link> <span class=md-ellipsis> UCB CS161: Computer Security </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/MIT6.1600/ class=md-nav__link> <span class=md-ellipsis> MIT 6.1600: Foundations of Computer Security </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/MIT6.858/ class=md-nav__link> <span class=md-ellipsis> MIT 6.858: Computer System Security </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/CSE365/ class=md-nav__link> <span class=md-ellipsis> ASU CSE365: Introduction to Cybersecurity </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/CSE466/ class=md-nav__link> <span class=md-ellipsis> ASU CSE466: Computer Systems Security </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/SEEDLabs/ class=md-nav__link> <span class=md-ellipsis> SU SEED Labs </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_17> <label class=md-nav__link for=__nav_17 id=__nav_17_label tabindex=0> <span class=md-ellipsis> Computer Networking </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_17_label aria-expanded=false> <label class=md-nav__title for=__nav_17> <span class="md-nav__icon md-icon"></span> Computer Networking </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/topdown_ustc/ class=md-nav__link> <span class=md-ellipsis> USTC Computer Networking:A Top-Down Approach </span> </a> </li> <li class=md-nav__item> <a href=../../%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/topdown/ class=md-nav__link> <span class=md-ellipsis> Computer Networking: A Top-Down Approach </span> </a> </li> <li class=md-nav__item> <a href=../../%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/CS144/ class=md-nav__link> <span class=md-ellipsis> Stanford CS144: Computer Network </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_18> <label class=md-nav__link for=__nav_18 id=__nav_18_label tabindex=0> <span class=md-ellipsis> Database Systems </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_18_label aria-expanded=false> <label class=md-nav__title for=__nav_18> <span class="md-nav__icon md-icon"></span> Database Systems </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F/CS186/ class=md-nav__link> <span class=md-ellipsis> UCB CS186: Introduction to Database System </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F/15445/ class=md-nav__link> <span class=md-ellipsis> CMU 15-445: Database Systems </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F/CS122/ class=md-nav__link> <span class=md-ellipsis> Caltech CS122: Database System Implementation </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F/CS346/ class=md-nav__link> <span class=md-ellipsis> Stanford CS346: Database System Implementation </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F/15799/ class=md-nav__link> <span class=md-ellipsis> CMU 15-799: Special Topics in Database Systems </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_19> <label class=md-nav__link for=__nav_19 id=__nav_19_label tabindex=0> <span class=md-ellipsis> Compilers </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_19_label aria-expanded=false> <label class=md-nav__title for=__nav_19> <span class="md-nav__icon md-icon"></span> Compilers </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86/PKU-Compilers/ class=md-nav__link> <span class=md-ellipsis> PKU 编译原理实践 </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86/CS143/ class=md-nav__link> <span class=md-ellipsis> Stanford CS143: Compilers </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86/NJU-Compilers/ class=md-nav__link> <span class=md-ellipsis> NJU 编译原理 </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_20> <label class=md-nav__link for=__nav_20 id=__nav_20_label tabindex=0> <span class=md-ellipsis> Programming Language Design and Analysis </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_20_label aria-expanded=false> <label class=md-nav__title for=__nav_20> <span class="md-nav__icon md-icon"></span> Programming Language Design and Analysis </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%88%86%E6%9E%90/CS242/ class=md-nav__link> <span class=md-ellipsis> Stanford CS242: Programming Languages </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%88%86%E6%9E%90/NJU-SoftwareAnalysis/ class=md-nav__link> <span class=md-ellipsis> NJU Software Analysis </span> </a> </li> <li class=md-nav__item> <a href=../../%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%88%86%E6%9E%90/PKU-SoftwareAnalysis/ class=md-nav__link> <span class=md-ellipsis> PKU Software Analysis </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_21> <label class=md-nav__link for=__nav_21 id=__nav_21_label tabindex=0> <span class=md-ellipsis> Computer Graphics </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_21_label aria-expanded=false> <label class=md-nav__title for=__nav_21> <span class="md-nav__icon md-icon"></span> Computer Graphics </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6/GAMES101/ class=md-nav__link> <span class=md-ellipsis> GAMES101 </span> </a> </li> <li class=md-nav__item> <a href=../../%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6/GAMES202/ class=md-nav__link> <span class=md-ellipsis> GAMES202 </span> </a> </li> <li class=md-nav__item> <a href=../../%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6/GAMES103/ class=md-nav__link> <span class=md-ellipsis> GAMES103 </span> </a> </li> <li class=md-nav__item> <a href=../../%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6/CS148/ class=md-nav__link> <span class=md-ellipsis> Stanford CS148 </span> </a> </li> <li class=md-nav__item> <a href=../../%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6/15462/ class=md-nav__link> <span class=md-ellipsis> CMU 15-462 </span> </a> </li> <li class=md-nav__item> <a href=../../%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6/USTC%20ComputerGraphics/ class=md-nav__link> <span class=md-ellipsis> USTC CG </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_22> <label class=md-nav__link for=__nav_22 id=__nav_22_label tabindex=0> <span class=md-ellipsis> Web Development </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_22_label aria-expanded=false> <label class=md-nav__title for=__nav_22> <span class="md-nav__icon md-icon"></span> Web Development </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../Web%E5%BC%80%E5%8F%91/mitweb/ class=md-nav__link> <span class=md-ellipsis> MIT web development course </span> </a> </li> <li class=md-nav__item> <a href=../../Web%E5%BC%80%E5%8F%91/CS142/ class=md-nav__link> <span class=md-ellipsis> Stanford CS142: Web Applications </span> </a> </li> <li class=md-nav__item> <a href=../../Web%E5%BC%80%E5%8F%91/fullstackopen/ class=md-nav__link> <span class=md-ellipsis> University of Helsinki: Full Stack open 2022 </span> </a> </li> <li class=md-nav__item> <a href=../../Web%E5%BC%80%E5%8F%91/CS571/ class=md-nav__link> <span class=md-ellipsis> CS571 Building UI (React & React Native) </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_23> <label class=md-nav__link for=__nav_23 id=__nav_23_label tabindex=0> <span class=md-ellipsis> Data Science </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_23_label aria-expanded=false> <label class=md-nav__title for=__nav_23> <span class="md-nav__icon md-icon"></span> Data Science </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E6%95%B0%E6%8D%AE%E7%A7%91%E5%AD%A6/Data100/ class=md-nav__link> <span class=md-ellipsis> UCB Data100: Principles and Techniques of Data Science </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_24> <label class=md-nav__link for=__nav_24 id=__nav_24_label tabindex=0> <span class=md-ellipsis> Artificial Intelligence </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_24_label aria-expanded=false> <label class=md-nav__title for=__nav_24> <span class="md-nav__icon md-icon"></span> Artificial Intelligence </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/CS50/ class=md-nav__link> <span class=md-ellipsis> Harvard CS50's Introduction to AI with Python </span> </a> </li> <li class=md-nav__item> <a href=../../%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/CS188/ class=md-nav__link> <span class=md-ellipsis> UCB CS188: Introduction to Artificial Intelligence </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_25> <label class=md-nav__link for=__nav_25 id=__nav_25_label tabindex=0> <span class=md-ellipsis> Machine Learning </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_25_label aria-expanded=false> <label class=md-nav__title for=__nav_25> <span class="md-nav__icon md-icon"></span> Machine Learning </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/ML/ class=md-nav__link> <span class=md-ellipsis> Coursera: Machine Learning </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/CS229/ class=md-nav__link> <span class=md-ellipsis> Stanford CS229: Machine Learning </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/CS189/ class=md-nav__link> <span class=md-ellipsis> UCB CS189: Introduction to Machine Learning </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_26> <label class=md-nav__link for=__nav_26 id=__nav_26_label tabindex=0> <span class=md-ellipsis> Machine Learning Systems </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_26_label aria-expanded=false> <label class=md-nav__title for=__nav_26> <span class="md-nav__icon md-icon"></span> Machine Learning Systems </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%B3%BB%E7%BB%9F/AICS/ class=md-nav__link> <span class=md-ellipsis> Intelligent Computing Systems </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%B3%BB%E7%BB%9F/CMU10-414/ class=md-nav__link> <span class=md-ellipsis> CMU 10-414/714: Deep Learning Systems </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%B3%BB%E7%BB%9F/MLC/ class=md-nav__link> <span class=md-ellipsis> Machine Learning Compilation </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_27> <label class=md-nav__link for=__nav_27 id=__nav_27_label tabindex=0> <span class=md-ellipsis> Deep Learning </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_27_label aria-expanded=false> <label class=md-nav__title for=__nav_27> <span class="md-nav__icon md-icon"></span> Deep Learning </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/EECS498-007/ class=md-nav__link> <span class=md-ellipsis> UMich EECS 498-007 / 598-005: Deep Learning for Computer Vision </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/CS230/ class=md-nav__link> <span class=md-ellipsis> Coursera: Deep Learning </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/LHY/ class=md-nav__link> <span class=md-ellipsis> NTU Machine Learning </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/CS231/ class=md-nav__link> <span class=md-ellipsis> Stanford CS231n: CNN for Visual Recognition </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/CS224n/ class=md-nav__link> <span class=md-ellipsis> Stanford CS224n: Natural Language Processing </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/CS224w/ class=md-nav__link> <span class=md-ellipsis> Stanford CS224w: Machine Learning with Graphs </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/CS285/ class=md-nav__link> <span class=md-ellipsis> UCB CS285: Deep Reinforcement Learning </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_28> <label class=md-nav__link for=__nav_28 id=__nav_28_label tabindex=0> <span class=md-ellipsis> Advanced Machine Learning </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_28_label aria-expanded=false> <label class=md-nav__title for=__nav_28> <span class="md-nav__icon md-icon"></span> Advanced Machine Learning </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%BF%9B%E9%98%B6/roadmap/ class=md-nav__link> <span class=md-ellipsis> Roadmap </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%BF%9B%E9%98%B6/CMU10-708/ class=md-nav__link> <span class=md-ellipsis> CMU 10-708: Probabilistic Graphical Models </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%BF%9B%E9%98%B6/STAT8201/ class=md-nav__link> <span class=md-ellipsis> Columbia STAT 8201: Deep Generative Models </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%BF%9B%E9%98%B6/STA4273/ class=md-nav__link> <span class=md-ellipsis> U Toronto STA 4273 Winter 2021: Minimizing Expectations </span> </a> </li> <li class=md-nav__item> <a href=../../%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%BF%9B%E9%98%B6/CS229M/ class=md-nav__link> <span class=md-ellipsis> Stanford STATS214 / CS229M: Machine Learning Theory </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../../%E5%90%8E%E8%AE%B0/ class=md-nav__link> <span class=md-ellipsis> Postscript </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#why-vim class=md-nav__link> <span class=md-ellipsis> Why Vim </span> </a> </li> <li class=md-nav__item> <a href=#how-to-learn-vim class=md-nav__link> <span class=md-ellipsis> How to learn Vim </span> </a> </li> <li class=md-nav__item> <a href=#remapping-keys class=md-nav__link> <span class=md-ellipsis> Remapping Keys </span> </a> </li> <li class=md-nav__item> <a href=#recommended-references class=md-nav__link> <span class=md-ellipsis> Recommended References </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=vim>Vim</h1> <h2 id=why-vim>Why Vim</h2> <p>In my opinion, the Vim editor has the following benefits:</p> <ul> <li>It keeps your finger on the keyboard throughout the development and moving the cursor without the arrow keys keeps your fingers in the best position for typing.</li> <li>Convenient file switching and panel controls allow you to edit multiple files simultaneously or even different locations of the same file.</li> <li>Vim's macros can batch repeat operations (e.g. add tabs to multi-lines, etc.)</li> <li>Vim is well-suited for Linux servers without GUI. When you connect to a remote server through <code>ssh</code>, you can only develop from the command line because there is no GUI (of course, many IDEs such as PyCharm now provide <code>ssh</code> plugins to solve this problem).</li> <li>A rich ecology of plugins gives you the world's most fancy command-line editor.</li> </ul> <h2 id=how-to-learn-vim>How to learn Vim</h2> <p>Unfortunately Vim does have a pretty steep learning curve and it took me a few weeks to get used to developing with Vim. You'll feel very uncomfortable at first, but once you get past the initial stages, trust me, you'll fall in love with Vim.</p> <p>There is a vast amount of learning material available on Vim, but the best way to master it is to use it in your daily development, no need to learn all the fancy advanced Vim tricks right away. The recommended learning path is as follows:</p> <ul> <li>Read <a href=https://missing.csail.mit.edu/2020/editors/ >This tutorial</a> first to understand the basic Vim concepts and usage.</li> <li>Use Vim's own <code>vimtutor</code> to practice. After installing Vim, type <code>vimtutor</code> directly into the command line to enter the practice program.</li> <li>Then you can force yourself to use Vim for development, and you can install Vim plugins in your favorite IDE.</li> <li>Once you're fully comfortable with Vim, a new world opens up to you, and you can configure your own Vim on demand (by modifying the <code>.vimrc</code> file), and there are countless resources on the Internet to learn from.</li> <li>If you want to know more about how to customize Vim to suit your needs, <a href=https://learnvimscriptthehardway.stevelosh.com/ ><em>Learn Vim Script the Hard Way</em></a> is a perfect start point.</li> </ul> <h2 id=remapping-keys>Remapping Keys</h2> <p>Ctrl and Esc keys are probably two of the most used keys in Vim. However, these two keys are pretty far away from home row. In order to make it easier to reach these keys, you can remap CapsLock to Esc or Ctrl.</p> <p>On Windows, <a href=https://learn.microsoft.com/en-us/windows/powertoys/ >Powertoys</a> or <a href=https://www.autohotkey.com/ >AutoHotkey</a> can be used to achieve this goal. <br> On macOS, you can remap keys in system settings, see this <a href=https://vim.fandom.com/wiki/Map_caps_lock_to_escape_in_macOS>page</a>. <a href=https://karabiner-elements.pqrs.org/ >Karabiner-Elements</a> also works.</p> <p>A better solution is to make CapsLock function as Esc and Ctrl simultaneously. Click CapsLock to send Esc, hold CapsLock to use it as Ctrl key. Here's how to do it on different systems:</p> <ul> <li><a href=https://gist.github.com/sedm0784/4443120>Windows</a> </li> <li><a href=https://ke-complex-modifications.pqrs.org/#caps_lock_tapped_escape_held_left_control>MacOS</a> </li> <li><a href=https://www.jianshu.com/p/6fdc0e0fb266>Linux</a></li> </ul> <h2 id=recommended-references>Recommended References</h2> <ul> <li>Neil, Drew. Practical Vim: Edit Text at the Speed of Thought. N.p., Pragmatic Bookshelf, 2015.</li> <li>Neil, Drew. Modern Vim: Craft Your Development Environment with Vim 8 and Neovim. United States, Pragmatic Bookshelf.</li> </ul> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg> </span> <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">May 8, 2024</span> </span> </aside> <!-- Insert generated snippet here --> <script src=https://giscus.app/client.js data-repo=PKUFlyingPig/cs-self-learning data-repo-id=R_kgDOGP67ng data-category=Announcements data-category-id=DIC_kwDOGP67ns4COM9Q data-mapping=title data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-theme=light_protanopia data-lang=zh-CN data-loading=lazy crossorigin=anonymous async>
</script> <!-- Synchronize Giscus theme with palette --> <script>
var giscus = document.querySelector("script[src*=giscus]")
// Set palette on initial load
var palette = __md_get("__palette")
if (palette && typeof palette.color === "object") {
var theme = palette.color.scheme === "slate"
? "dark_protanopia"
: "light_protanopia"
// Instruct Giscus to set theme
giscus.setAttribute("data-theme", theme)
}
// Register event handlers after documented loaded
document.addEventListener("DOMContentLoaded", function() {
var ref = document.querySelector("[data-md-component=palette]")
ref.addEventListener("change", function() {
var palette = __md_get("__palette")
if (palette && typeof palette.color === "object") {
var theme = palette.color.scheme === "slate"
? "dark_protanopia"
: "light_protanopia"
// Instruct Giscus to change theme
var frame = document.querySelector(".giscus-frame")
frame.contentWindow.postMessage(
{ giscus: { setConfig: { theme } } },
"https://giscus.app"
)
}
})
})
</script> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2021-present <a href=https://github.com/PKUFlyingPig target=_blank rel="noopener noreferrer">PKUFlyingPig</a> </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/pkuflyingpig/cs-self-learning/ target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 496 512"><!-- Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"base": "../../..", "features": ["header.autohide", "navigation.tracking", "navigation.top", "search.highlight", "search.share", "search.suggest", "content.code.annotate"], "search": "../../../assets/javascripts/workers/search.f886a092.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script src=../../../assets/javascripts/bundle.d7c377c4.min.js></script> </body> </html>