diff --git a/dotfiles/.config/nvim/.gitignore b/dotfiles/.config/nvim/.gitignore
new file mode 100644
index 0000000..bbcb24b
--- /dev/null
+++ b/dotfiles/.config/nvim/.gitignore
@@ -0,0 +1,4 @@
+.netrwhist
+MattDev_NvimConfig/
+colors
+localdata
diff --git a/dotfiles/.config/nvim/LICENSE b/dotfiles/.config/nvim/LICENSE
new file mode 100644
index 0000000..f288702
--- /dev/null
+++ b/dotfiles/.config/nvim/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/dotfiles/.config/nvim/coc-settings.json b/dotfiles/.config/nvim/coc-settings.json
new file mode 100644
index 0000000..fe77cf7
--- /dev/null
+++ b/dotfiles/.config/nvim/coc-settings.json
@@ -0,0 +1,13 @@
+{
+ "coc.preferences.formatOnSaveFiletypes": [
+ "javascript",
+ "javascriptreact",
+ "typescript",
+ "typescriptreact"
+ ],
+ "tsserver.formatOnType": true,
+ "coc.preferences.formatOnType": true,
+ "eslint.autoFixOnSave": true,
+ "eslint.filetypes": ["javascript", "javascriptreact", "typescript", "typescriptreact"]
+}
+
diff --git a/dotfiles/.config/nvim/coc.vim b/dotfiles/.config/nvim/coc.vim
new file mode 100644
index 0000000..5cb7918
--- /dev/null
+++ b/dotfiles/.config/nvim/coc.vim
@@ -0,0 +1,149 @@
+" TextEdit might fail if hidden is not set.
+set hidden
+
+" Some servers have issues with backup files, see #649.
+set nobackup
+set nowritebackup
+
+" Give more space for displaying messages.
+set cmdheight=2
+
+" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable
+" delays and poor user experience.
+set updatetime=300
+
+" Don't pass messages to |ins-completion-menu|.
+set shortmess+=c
+
+" Always show the signcolumn, otherwise it would shift the text each time
+" diagnostics appear/become resolved.
+if has("patch-8.1.1564")
+ " Recently vim can merge signcolumn and number column into one
+ set signcolumn=number
+else
+ set signcolumn=yes
+endif
+
+" Use tab for trigger completion with characters ahead and navigate.
+" NOTE: Use command ':verbose imap ' to make sure tab is not mapped by
+" other plugin before putting this into your config.
+inoremap
+ \ pumvisible() ? "\" :
+ \ check_back_space() ? "\" :
+ \ coc#refresh()
+inoremap pumvisible() ? "\" : "\"
+
+function! s:check_back_space() abort
+ let col = col('.') - 1
+ return !col || getline('.')[col - 1] =~# '\s'
+endfunction
+
+" Use to trigger completion.
+inoremap coc#refresh()
+
+" Use to confirm completion, `u` means break undo chain at current
+" position. Coc only does snippet and additional edit on confirm.
+" could be remapped by other vim plugin, try `:verbose imap `.
+if exists('*complete_info')
+ inoremap complete_info()["selected"] != "-1" ? "\" : "\u\"
+else
+ inoremap pumvisible() ? "\" : "\u\"
+endif
+
+" Use `[g` and `]g` to navigate diagnostics
+" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list.
+nmap [g (coc-diagnostic-prev)
+nmap ]g (coc-diagnostic-next)
+
+" GoTo code navigation.
+nmap gd (coc-definition)
+nmap gy (coc-type-definition)
+nmap gi (coc-implementation)
+nmap gr (coc-references)
+
+" Use K to show documentation in preview window.
+" nnoremap K :call show_documentation()
+"
+function! s:show_documentation()
+ if (index(['vim','help'], &filetype) >= 0)
+ execute 'h '.expand('')
+ else
+ call CocAction('doHover')
+ endif
+endfunction
+
+" Highlight the symbol and its references when holding the cursor.
+autocmd CursorHold * silent call CocActionAsync('highlight')
+
+" Symbol renaming.
+nmap rn (coc-rename)
+
+" Formatting selected code.
+" xmap f (coc-format-selected)
+" nmap f (coc-format-selected)
+
+augroup mygroup
+ autocmd!
+ " Setup formatexpr specified filetype(s).
+ autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
+ " Update signature help on jump placeholder.
+ autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
+augroup end
+
+" Applying codeAction to the selected region.
+" Example: `aap` for current paragraph
+xmap a (coc-codeaction-selected)
+nmap a (coc-codeaction-selected)
+
+" Remap keys for applying codeAction to the current buffer.
+nmap ac (coc-codeaction)
+" Apply AutoFix to problem on the current line.
+nmap qf (coc-fix-current)
+
+" Map function and class text objects
+" NOTE: Requires 'textDocument.documentSymbol' support from the language server.
+xmap if (coc-funcobj-i)
+omap if (coc-funcobj-i)
+xmap af (coc-funcobj-a)
+omap af (coc-funcobj-a)
+xmap ic (coc-classobj-i)
+omap ic (coc-classobj-i)
+xmap ac (coc-classobj-a)
+omap ac (coc-classobj-a)
+
+" Use CTRL-S for selections ranges.
+" Requires 'textDocument/selectionRange' support of LS, ex: coc-tsserver
+nmap (coc-range-select)
+xmap (coc-range-select)
+
+" Add `:Format` command to format current buffer.
+command! -nargs=0 Format :call CocAction('format')
+
+" Add `:Fold` command to fold current buffer.
+command! -nargs=? Fold :call CocAction('fold', )
+
+" Add `:OR` command for organize imports of the current buffer.
+command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport')
+
+" Add (Neo)Vim's native statusline support.
+" NOTE: Please see `:h coc-status` for integrations with external plugins that
+" provide custom statusline: lightline.vim, vim-airline.
+set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
+
+" Mappings for CoCList
+" Show all diagnostics.
+nnoremap a :CocList diagnostics
+" Manage extensions.
+nnoremap e :CocList extensions
+" Show commands.
+nnoremap c :CocList commands
+" Find symbol of current document.
+nnoremap o :CocList outline
+" Search workspace symbols.
+nnoremap s :CocList -I symbols
+" Do default action for next item.
+nnoremap j :CocNext
+" Do default action for previous item.
+nnoremap k :CocPrev
+" Resume latest coc list.
+nnoremap p :CocListResume
diff --git a/dotfiles/.config/nvim/init.vim b/dotfiles/.config/nvim/init.vim
old mode 100644
new mode 100755
index e69de29..8e59fe3
--- a/dotfiles/.config/nvim/init.vim
+++ b/dotfiles/.config/nvim/init.vim
@@ -0,0 +1,585 @@
+" _____ _ ___ _
+" / ___|| | / _ \ | |
+" \ `--. | |__ __ _ __ __ _ __ / /_\ \ _ __ __| | ___ _ __ ___ ___ _ __
+" `--. \| '_ \ / _` |\ \ /\ / /| '_ \ | _ || '_ \ / _` | / _ \| '__|/ __| / _ \ | '_ \
+" /\__/ /| | | || (_| | \ V V / | | | | | | | || | | || (_| || __/| | \__ \| (_) || | | |
+" \____/ |_| |_| \__,_| \_/\_/ |_| |_| \_| |_/|_| |_| \__,_| \___||_| |___/ \___/ |_| |_|
+"
+" _ _ _ _____ __ _ _ _
+" | | | |(_) / __ \ / _|(_) | | (_)
+" | | | | _ _ __ ___ | / \/ ___ _ __ | |_ _ __ _ _ _ _ __ __ _ | |_ _ ___ _ __
+" | | | || || '_ ` _ \ | | / _ \ | '_ \ | _|| | / _` || | | || '__| / _` || __|| | / _ \ | '_ \
+" \ \_/ /| || | | | | | | \__/\| (_) || | | || | | || (_| || |_| || | | (_| || |_ | || (_) || | | |
+" Neo \___/ |_||_| |_| |_| \____/ \___/ |_| |_||_| |_| \__, | \__,_||_| \__,_| \__||_| \___/ |_| |_|
+" __/ |
+" |___/
+"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+" Originally a fork of:
+" https://github.com/novln/nvim/blob/master/init.vim
+"
+" Key shortcuts
+" -> ctrl-p
+" -> nerdtree toggle
+" ...
+"
+"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+"
+" First and foremost, set the cache directory. This is needed to coordinate
+" plugins.
+"
+let b:cache_directory = $HOME . '/.cache/nvim'
+"
+" Plugins are the beauty of vim! Use the awesome plugged plugin manager in
+" neovim.
+"
+call plug#begin('~/.local/share/nvim/plugged')
+"
+" Plugins are in ascending chronological order relative to when they were
+" added to the configuration.
+"
+"
+"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+"
+"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+"
+" FZF Fuzzy Finder! Careful, things are about to get FAAAAASSSTTT
+"
+" A command line fuzzy finder Very powerful
+Plug 'junegunn/fzf', { 'dir': '~/Software/fzf', 'do': './install --all' }
+Plug 'junegunn/fzf.vim'
+Plug 'airblade/vim-rooter'
+"
+"
+" This command tells fzf to skip filenames during its :Rg search command.
+"
+command! -bang -nargs=* Rg call fzf#vim#grep("rg --column --line-number --no-heading --color=always --smart-case ".shellescape(), 1, {'options': '--delimiter : --nth 4..'}, 0)
+"
+"
+" Images in vim! Using NeoVim, FZF and termpix.
+"
+" Original inspiration: to preview image files: https://www.youtube.com/watch?v=vzWibjhLBUs
+" See gist here: https://gist.github.com/LinuxIsCool/457658f5298e4186f23f3731324b68cb
+"
+let g:fzf_layout = { 'down': '~60%' }
+let g:fzf_files_options =
+ \ '--preview "(~/.cargo/bin/termpix --width 50 --true-color {} || cat {}) 2> /dev/null "'
+
+" Map ctrl-t to bring up fzf fuzzy finder for files
+noremap :Files
+"
+" Vim Minimap!
+" Very cool concept but it's causing a bit of lag, and it raises an error when
+" I open it. I very well could take a look at the code. I could probably fix
+" that bug and also increase the performance.
+" Also, it would need a way to be controlled, like I need to access that
+" window. It seems like that's actually what's bugging out.
+" I should probably get back to work. I can probably leave it installed for
+" now, and not use to too often. I'll take a look at the source too.
+Plug 'lleixat/vim-minimap'
+let g:minimap_show='mm'
+let g:minimap_close='mc'
+let g:minimap_update='mu'
+let g:minimap_toggle='mt'
+" This one seems sketch as well ..
+" Plug 'koron/minimap-vim'
+" No minimap for now. Sept 2020
+" Although, I couls see how the minimap could be super useful. Let's take
+" a look at the code of the original python one.
+
+" Get the dot operator (repeat) functional on plugin commands
+Plug 'tpope/vim-repeat'
+" A collection of symetric commands shortcuts the use [ and ] as access keys.
+Plug 'tpope/vim-unimpaired'
+
+" This one has a lot of potential. 95 contributors on github, and it's 83%
+" python
+Plug 'Shougo/denite.nvim'
+
+" ES2015 code snippets (Optional)
+" Plug 'epilande/vim-es2015-snippets'
+
+" React code snippets
+" Plug 'epilande/vim-react-snippets'
+
+" Ultisnips
+" Plug 'SirVer/ultisnips'
+
+" Snippets are separated from the engine. Add this if you want them:
+" Plug 'honza/vim-snippets'
+
+" Plug 'dsznajder/vscode-es7-javascript-react-snippets', {
+ " \ 'do': 'yarn install --frozen-lockfile && yarn compile' }
+
+" Trigger configuration (Optional)
+" let g:UltiSnipsExpandTrigger=""
+"
+" Vimagit inspired by magit for emacs
+Plug 'jreybert/vimagit'
+
+Plug 'jiangmiao/auto-pairs'
+
+Plug 'alvan/vim-closetag'
+let g:closetag_filenames = '*.html,*.xhtml,*.phtml,*.js'
+
+" Polyglot language pack
+Plug 'sheerun/vim-polyglot'
+
+" Show indentation level
+Plug 'Yggdroot/indentLine'
+
+" NeoMake
+Plug 'neomake/neomake'
+
+" COC
+" Javascript configuration from: https://thoughtbot.com/blog/modern-typescript-and-react-development-in-vim
+Plug 'neoclide/coc.nvim', {'branch': 'release'}
+let g:coc_global_extensions = [
+ \ 'coc-tsserver'
+ \ ]
+" if isdirectory('./node_modules') && isdirectory('./node_modules/prettier')
+" let g:coc_global_extensions += ['coc-prettier']
+" endif
+
+if isdirectory('./node_modules') && isdirectory('./node_modules/eslint')
+ let g:coc_global_extensions += ['coc-eslint']
+endif
+nmap gd (coc-definition)
+nmap gy (coc-type-definition)
+nmap gr (coc-references)
+nmap [g (coc-diagnostic-prev)
+nmap ]g (coc-diagnostic-next)
+nmap do (coc-codeaction)
+nmap rn (coc-rename)
+
+Plug 'neoclide/coc-eslint'
+Plug 'neoclide/coc-prettier'
+
+" Automatically generate ctags for files
+Plug 'xolox/vim-easytags'
+
+" Language Server Protocol
+" View and search Language Server Protocol symbols and tags
+Plug 'liuchengxu/vista.vim'
+
+" Goyo for distraction free editing! And T-shirts!
+Plug 'junegunn/goyo.vim'
+
+" Limelight for focused editing
+Plug 'junegunn/limelight.vim'
+
+" Make sure you use single quotes
+"
+Plug 'tomlion/vim-solidity'
+"Jupyter Support for VIM
+" Plug 'szymonmaszke/vimpyter'
+" autocmd Filetype ipynb nmap b :VimpyterInsertPythonBlock
+" autocmd Filetype ipynb nmap i :VimpyterStartJupyter
+" autocmd Filetype ipynb nmap n :VimpyterStartNteract
+Plug 'jeffkreeftmeijer/vim-numbertoggle'
+Plug 'tpope/vim-surround'
+"-------------------------------------------------------------------------------
+"Color Theme
+Plug 'tomasiser/vim-code-dark'
+Plug 'ajmwagar/vim-deus'
+Plug 'arcticicestudio/nord-vim'
+"-------------------------------------------------------------------------------
+Plug 'jceb/vim-orgmode'
+Plug 'tpope/vim-speeddating'
+Plug 'junegunn/vim-easy-align'
+
+"-------------------------------------------------------------------------------
+" Git Section
+"
+" Github dashboard in vim!
+Plug 'junegunn/vim-github-dashboard'
+
+" Git commands in vim
+Plug 'tpope/vim-fugitive'
+
+" A git commit browser.
+Plug 'junegunn/gv.vim'
+
+" Show git diff in the sign column
+Plug 'airblade/vim-gitgutter'
+"-------------------------------------------------------------------------------
+
+
+Plug 'tpope/vim-rhubarb'
+
+"---------------
+" For Javascript and Typescript
+" INVESTIGATE THESE
+Plug 'pangloss/vim-javascript'
+Plug 'leafgarland/typescript-vim'
+Plug 'peitalin/vim-jsx-typescript'
+Plug 'styled-components/vim-styled-components', { 'branch': 'main' }
+Plug 'jparise/vim-graphql'
+Plug 'yuezk/vim-js'
+Plug 'maxmellon/vim-jsx-pretty'
+
+" Start interactive EasyAlign in visual mode (e.g. vipga)
+xmap ga (EasyAlign)
+
+" Start interactive EasyAlign for a motion/text object (e.g. gaip)
+nmap ga (EasyAlign)
+
+"-------------------------------------------------------------------------------
+" Trying out vim lightline as an alternative to vim-airline, sticking with
+" airline.
+" Plug 'itchyny/lightline.vim'
+
+Plug 'vim-airline/vim-airline'
+Plug 'vim-airline/vim-airline-themes'
+"Enable tabline extension
+let g:airline#extensions#tabline#enabled = 1
+let g:airline#extensions#tabline#left_sep = '|'
+let g:airline#extensions#tabline#left_alt_sep = '|'
+let g:airline#extensions#tabline#formatter = 'unique_tail'
+
+"-------------------------------------------------------------------------------
+" Markdown Composer
+function! BuildComposer(info)
+ if a:info.status != 'unchanged' || a:info.force
+ if has('nvim')
+ !cargo build --release
+ else
+ !cargo build --release --no-default-features --features json-rpc
+ endif
+ endif
+endfunction
+"
+Plug 'euclio/vim-markdown-composer', { 'do': function('BuildComposer') }
+let g:markdown_composer_open_browser = 0
+"-------------------------------------------------------------------------------
+"
+set wildignore+=*/tmp/*,*.so,*.swp,*.zip,__pycache__/ " MacOSX/Linux
+Plug 'ctrlpvim/ctrlp.vim'
+"The below 4 lines are for speed!from https://stackoverflow.com/questions/21346068/slow-performance-on-ctrlp-it-doesnt-work-to-ignore-some-folders/22784889#22784889
+ let g:ctrlp_cache_dir = $HOME . '/.cache/ctrlp'
+ if executable('ag')
+ let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
+ endif
+ let g:ctrlp_cmd = 'CtrlPMixed' " search anything (in files, buffers and MRU files at the same time.)
+ let g:ctrlp_working_path_mode = '' " search for nearest ancestor like .git, .hg, and the directory of the current file
+ let g:ctrlp_match_window_bottom = 1 " show the match window at the top of the screen
+ let g:ctrlp_by_filename = 0
+ let g:ctrlp_max_height = 10 " maximum height of match window
+ let g:ctrlp_switch_buffer = 'et' " jump to a file if it's open already
+ let g:ctrlp_use_caching = 1 " enable caching
+ let g:ctrlp_cache_dir = b:cache_directory . '/ctrlp' " define cache path
+ let g:ctrlp_clear_cache_on_exit = 0 " speed up by not removing clearing cache everytime
+ let g:ctrlp_mruf_max = 250 " number of recently opened files
+ let g:ctrlp_show_hidden = 1
+ let g:ctrlp_custom_ignore = {
+ \ 'py': '__pycache__/',
+ \ }
+ " \'py':__pycache__/'
+ " 'bin'
+ " 'develop-eggs',
+ " 'eggs'
+ " 'parts'
+ " 'src/*.egg-info'
+ " set wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux
+
+"-------------------------------------------------------------------------------
+
+Plug 'scrooloose/nerdcommenter'
+"Comment manager
+" Allow commenting and inverting empty lines (useful when commenting a region)
+let g:NERDCommentEmptyLines = 1
+" Enable trimming of trailing whitespace when uncommenting
+let g:NERDTrimTrailingWhitespace = 1
+" Add spaces after comment delimiters by default
+let g:NERDSpaceDelims = 1
+" Align line-wise comment delimiters flush left instead of following code indentation
+let g:NERDDefaultAlign = 'left'
+
+"-------------------------------------------------------------------------------
+
+Plug 'goerz/ipynb_notedown.vim'
+
+"-------------------------------------------------------------------------------
+" Modified vim start screen
+Plug 'mhinz/vim-startify'
+
+Plug 'preservim/nerdtree' |
+ \ Plug 'Xuyuanp/nerdtree-git-plugin' |
+ \ Plug 'ryanoasis/vim-devicons'
+let g:NERDTreeGitStatusIndicatorMapCustom = {
+ \ 'Modified' :'✹',
+ \ 'Staged' :'✚',
+ \ 'Untracked' :'✭',
+ \ 'Renamed' :'➜',
+ \ 'Unmerged' :'═',
+ \ 'Deleted' :'✖',
+ \ 'Dirty' :'✗',
+ \ 'Ignored' :'☒',
+ \ 'Clean' :'✔︎',
+ \ 'Unknown' :'?',
+ \ }
+let g:NERDTreeGitStatusUseNerdFonts = 1 " you should install nerdfonts by yourself. default: 0
+" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " On-demand loading
+":help NERDTreeOptions
+map :NERDTreeToggle
+map r :NERDTreeFind
+let NERDTreeIgnore=['\.pyc$', '\~$']
+
+" This makes the location of the current open file always the current working
+" directory of vim. Experimental - Sept 15th 2020
+autocmd BufEnter * lcd %:p:h
+
+"-------------------------------------------------------------------------------
+
+Plug 'bfredl/nvim-ipy'
+let g:nvim_ipy_perform_mappings = 0
+map s (IPy-Run)
+map (IPy-RunCell)
+map (IPy-Complete)
+map (IPy-WordObjInfo)
+map ? (IPy-Interrupt)
+map (IPy-Terminate)
+
+""---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+" Fix for slimux:
+set shell=/bin/sh
+Plug 'lotabout/slimux'
+"Send text between tmux panes!
+nmap s :SlimuxREPLSendLinej
+vmap s :SlimuxREPLSendSelection
+" map :SlimuxREPLConfigure
+let g:slimux_pane_format = "#W #P "
+
+"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Plug 'vimwiki/vimwiki'
+ set nocompatible
+ filetype plugin on
+ syntax on
+"---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+" Initialize plugin system
+call plug#end()
+
+" DVC
+autocmd! BufNewFile,BufRead Dvcfile,*.dvc,dvc.lock setfiletype yaml
+
+"============u============u============u============u============u============u
+" VIM BEHAVIOUR
+" Highlight character at column 80
+:set colorcolumn=80
+
+" Tab completion in command mode
+set wildmenu
+
+"These filetypes are ignored when expanding wildcard searches
+set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc
+
+" show line numbers
+set number
+
+" using only 1 column (and 1 space) while possible
+set numberwidth=1
+
+" Set vim system timeouts
+set timeoutlen=1000
+set ttimeoutlen=5
+
+" Vim Arithmetic
+" -> increase the count of a number
+" -> decrease the count of a number
+nnoremap :exe "normal \"
+
+" Vim date key
+" I would like this to put behind the cursor.
+nnoremap d :r !date
+
+" Vim ls key
+" Wed 16 Sep 2020 09:32:44 PM PDT
+nnoremap l :r ! ls
+
+" Here we map the leader key! This is where things get spicy! The leader key
+" in vim is extremely powerful. Wielded by great mages, it unlocks the ability
+" to cast spells through one's very own fingertips by merely thinking a string
+" of words. Once the energetic vibration of these thoughts pass through the
+" keys into the keyboard, the spell is activated and it's consequences take
+" effect. Use this key in normal mode to run commands through key bindings!
+" * Why do we define it twice? Once with no g, then with a g, what is the
+" difference?
+"
+" Set the leader key - #setleader
+let mapleader=","
+let g:mapleader=","
+
+" I was about to make something bad ass here. It escapes me. It was something
+" about doing something in vim.
+
+" Here I make shortcuts to various system locations.
+" ssh config, fish config, vim config, my personal notes,
+nnoremap ev :e $MYVIMRC
+nnoremap ec :e ~/.config/
+nnoremap ef :e ~/.config/fish/config.fish
+nnoremap ea :e ~/.config/alacritty/alacritty.yml
+nnoremap es :e ~/.ssh/config
+nnoremap et :e ~/.tmux.conf
+nnoremap el :e ~/.log/log.org
+nnoremap en :e ~/Notes/
+
+" funct! Exec(command)
+" redir =>output
+" silent exec a:command
+" redir END
+" return output
+" endfunct!
+
+nnoremap i^R=Exec('ls')
+
+" Force reload vimrc
+nnoremap rv :source $MYVIMRC
+" stow -v -R dotfiles -t ~/
+
+" For copying text out of VIM
+set mouse=a
+
+" Syntax Highlighting
+syntax enable
+
+" set background=dark
+"colorscheme solarized
+set t_Co=256
+set t_ut=
+colorscheme nord
+" colorscheme iceberg
+" colorscheme codedark
+hi Normal guibg=NONE ctermbg=NONE
+" colors deus
+
+"Highlight Cursor line
+set cursorline
+" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+"
+" Enable Intuitive copy and paste
+" vnoremap "*y
+" vnoremap "+y
+" nnoremap "+p
+" inoremap +
+set pastetoggle=
+
+"Use modifier to jump to beginning and end of lines
+map j $
+map f 0
+
+"split more naturally
+set splitbelow
+set splitright
+" Searching
+set incsearch " show 'best match so far' as you type
+set hlsearch " hilight the items found by the search
+set ignorecase " ignores case of letters on searches
+set smartcase " Override the 'ignorecase' option if the search pattern contains upper case characters
+"Manually turn off the search highlight
+map / :nohl
+
+set nowrap
+
+"Abbreviations
+ab h1 hi
+
+" Disable these mappings that I don't want.
+" Hmm.. Better look into this. I should know what these do.
+noremap
+noremap f
+noremap
+noremap
+
+" Make buffer movement similar to vimium/vimfx for firefox using let
+" g:airline#extensions#tabline#enabled v 1
+"
+" Cycle tabs
+" Don't fuckin save, it makes things slow, wish I changed this
+" earlier...(removing save - Sept 12 2020)
+" I've been mixing up the terminology of tabs and windows.
+" A Buffer is what's drawn on the screen
+" A window is a view of particular text
+" A tab page is a utility for organizing multiple windows
+nnoremap :bn:NERDTreeFindl
+nnoremap :bp:NERDTreeFindl
+" noremap :tabnew split
+" Let's shuffle windows just as easy. Then we can get into nerd tree smoother
+" Whatabout shift n and shift p to cycle tabs?
+" What do shipt p and shift n do?
+" shift p is print behind, and shift n is previous search result.
+" OK, we are not changing the above, they actually match vimium in firefox
+" Fix Cycle tabs
+" nnoremap