Faits :
A.
Par jugement du 26 janvier 2017, le Tribunal correctionnel de l'arrondissement de l'Est vaudois a libéré X._ du chef de prévention d'injure, l'a condamné, pour tentative de meurtre, lésions corporelles simples qualifiées, voies de fait qualifiées, menaces qualifiées, contrainte, empêchement d'accomplir un acte officiel, infraction et contravention à la LStup, à une peine privative de liberté de 48 mois, sous déduction de 354 jours de détention provisoire, ainsi qu'à une amende de 500 francs. Il a en outre constaté que le prénommé a subi 10 jours de détention dans des conditions de détention illicites et a ordonné que 5 jours soient déduits de sa peine à titre de réparation du tort moral. Enfin, le tribunal a ordonné que X._ soit soumis à un traitement institutionnel au sens de l'art. 59 CP.
B.
Par jugement du 6 juillet 2017, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud a rejeté l'appel formé par X._ contre ce jugement et a intégralement confirmé celui-ci.
La cour cantonale a retenu les faits suivants.
B.a. X._ est né en 1984. Célibataire, il est le père d'un fils né en 2009. Après sa scolarité obligatoire, le prénommé a commencé un apprentissage de maçon, puis une école d'informatique, sans terminer ces formations. Par la suite, il a travaillé comme maçon et monteur en échafaudages.
Le casier judiciaire de X._ fait état d'une condamnation en 2008 pour violation des règles de la circulation routière (conducteur se trouvant dans l'incapacité de conduire en raison d'une alcoolémie qualifiée), d'une condamnation en 2009 pour inobservation des prescriptions de service, insoumission et absence injustifiée, d'une condamnation en 2011 pour lésions corporelles simples, menaces et contrainte, d'une condamnation en 2014 pour violence ou menace contre les autorités et les fonctionnaires, d'une condamnation en 2015 pour voies de fait, injure, violence ou menace contre les autorités et les fonctionnaires, ainsi que d'une condamnation, la même année, pour lésions corporelles simples.
B.b. Entre 2008 et le 8 février 2016, X._ et A._ ont vécu en concubinage sans discontinuer. La vie du couple a été émaillée de fréquentes disputes, plus ou moins violentes, lesquelles ont parfois nécessité l'intervention de la police. Ces querelles indisposaient le voisinage, à tel point que le couple a fini par être expulsé du logement qu'il occupait à B._ jusqu'en avril 2015. Au cours des disputes, A._ répondait à son compagnon tant verbalement, par des injures, que physiquement, par des coups ou des griffures. Les violences physiques pouvaient débuter de part et d'autre. X._ n'a jamais déposé plainte contre sa concubine, laquelle n'a pas été poursuivie en raison des violences physiques dont elle admet avoir fait preuve envers lui.
A trois reprises, une fois en 2011, deux fois en 2015, X._ a fait l'objet de condamnations pénales pour s'en être pris physiquement à sa compagne et pour l'avoir menacée.
Durant toute l'instruction et encore en procédure d'appel, A._ a soutenu X._, notamment en mettant en avant ses bonnes aptitudes parentales et en se présentant comme seule responsable de la situation.
B.b.a. A C._, à une date indéterminée mais postérieure au mois d'avril 2015, au cours d'une dispute, X._ a attrapé A._ par le cou, par surprise. Il a placé ses deux bras autour du cou de sa compagne et a serré fortement. Comme elle se débattait, il s'est mis à serrer de plus en plus fort, au point que celle-ci, privée d'air, a failli perdre connaissance. A la suite de cet épisode, la prénommée a souffert de maux de gorge pendant plusieurs jours et de douleurs à la déglutition.
B.b.b. Entre le 5 mai 2015 et le 8 février 2016, au cours de disputes essentiellement motivées par la jalousie de X._, ce dernier a menacé à plusieurs reprises A._ de la tuer ou de la défigurer s'il la voyait avec un autre homme. Dans ces circonstances, il est également arrivé que le prénommé enferme sa concubine ou lui confisque téléphone portable et porte-monnaie, afin d'empêcher celle-ci de quitter le domicile commun.
A._ a déposé une plainte concernant ces faits, puis l'a retirée par la suite.
B.b.c. A C._, le 8 février 2016, alors qu'il se trouvait sous l'influence de l'alcool, de la cocaïne et du cannabis, au cours d'une nouvelle scène de jalousie qui se tramait dans le taxi ramenant le couple à son domicile, X._ a saisi A._ par les cheveux et lui a coincé la tête sous son aisselle. Puis, dans cette position, il l'a forcée à sortir du taxi alors qu'elle s'y refusait et l'a traînée, notamment par les cheveux, jusqu'à leur appartement. Une fois sur place, X._ l'a traitée de "pute" et l'a frappée à plusieurs reprises, y compris à coups de poing. A._ est parvenue à se réfugier sous le lit conjugal, lieu dont elle a aussitôt été extirpée par X._.
Toujours dans la chambre à coucher, ce dernier a violemment serré à deux mains le cou de sa partenaire, une première fois, par derrière, alors qu'elle était couchée sur le ventre et, une seconde fois, alors qu'elle était couchée sur le dos. A._ a entendu la sonnette de la porte d'entrée, puis frapper à la même porte, ainsi qu'une voix s'exclamer "police, ouvrez !". X._ n'a pas lâché sa prise. A un moment donné, A._ s'est trouvée assise, à même le sol. Pour sa part, le prénommé était assis derrière elle et avait passé une jambe autour de sa taille. Dans cette position, il s'est remis à l'étrangler, la serrant au cou de son bras droit et utilisant son bras gauche pour verrouiller sa prise. Il a fait usage d'une force extrême, ne laissant aucune possibilité à A._ de se libérer.
Le couple a été retrouvé, dans la position décrite, par la police, laquelle n'a eu d'autre choix que de pénétrer de force dans le logement. X._ n'a pas obtempéré tout de suite à l'ordre qui lui avait donné de lâcher immédiatement A._. Il a opposé résistance aux policiers, lesquels ont dû le saisir physiquement afin de libérer cette dernière et procéder à l'interpellation de X._. Alors qu'il se débattait vigoureusement, celui-ci a encore injurié sa compagne, la traitant de "pute" et de "salope".
B.b.d. Ensuite de cet épisode, les lésions suivantes ont été constatées sur A._ : plusieurs ecchymoses d'aspect frais et dermabrasions, dont certaines couvertes de fines croûtelles situées à la face antérieure du cou, du visage, du membre supérieur droit, du genou et au niveau du dos; une tuméfaction du cuir chevelu dans la région pariétale gauche; une petite plaie à la face interne de la lèvre inférieure.
A._ a eu peur pour sa vie, voyant X._ hors de lui et incapable de se maîtriser.
Le dernier nommé a été soumis à un examen clinique à l'Hôpital D._, le 8 février 2016. Diverses légères ecchymoses et abrasions cutanées ont été constatées sur le visage, le cou, le thorax, l'abdomen, ainsi qu'aux deux membres supérieurs et inférieurs; des traces de cocaïne et des métabolites de cette substance, ainsi que des traces de cannabis, ont été décelées dans son sang. Vu l'écoulement du temps, l'alcoolémie mesurée lors de cet examen n'a pas permis de déterminer celui que présentait X._ lors des faits, s'agissant d'un taux inférieur à 0,15 g/kg.
B.b.e. Entre le mois d'octobre 2013 et le 8 février 2016, X._ a consommé du cannabis de manière récurrente, ainsi que de la cocaïne de manière très occasionnelle. Il a détenu à son domicile du matériel nécessaire à la culture de chanvre en vue d'en faire le trafic. Ce matériel était composé d'une tente, d'un système de ventilation, de lampes électriques, de transformateurs électriques, d'environ 70 pots en plastique usagés et de conduits en aluminium servant à l'expulsion de l'air.
B.c. X._ a été soumis à une expertise psychiatrique, confiée aux Drs E._ et F._. Dans un rapport du 16 juin 2016, les experts ont posé le diagnostic de "troubles mentaux et troubles du comportement liés à l'utilisation de substances psychoactives multiples (alcool, cocaïne), intoxication aiguë". Il s'agissait, selon eux, d'un "état transitoire consécutif à la prise d'alcool ou d'une autre substance psychoactive", caractérisé par des perturbations de la conscience, des fonctions cognitives, de la perception, de l'affect et du comportement. Les experts ont par ailleurs indiqué que la capacité de X._ à contrôler ses consommations excluait un diagnostic de dépendance aux substances. Ils ont encore exclu tout autre diagnostic psychiatrique au sens de la CIM-10, soit en particulier un diagnostic de schizophrénie, de trouble schizotipique ou de trouble délirant, un diagnostic de trouble de l'humeur, un diagnostic de trouble névrotique ou encore un diagnostic de troubles de la personnalité.
Les experts ont conclu à une responsabilité légèrement diminuée. Selon eux, seul un traitement psychothérapeutique ambulatoire volontaire était à même de réduire le risque de récidive.
Les experts ont complété leur rapport par avis du 2 août 2016, en confirmant leur appréciation. Quant à l'indication d'un traitement ambulatoire au sens de l'art. 63 CP, ils ont exposé ce qui suit :
"Lors de nos entretiens, nous avons constaté que [l'expertisé] ne reconnaissait pas de difficulté en lien avec le contrôle de ses consommations et qu'il ne voyait aucune utilité dans un suivi ambulatoire spécialisé. S'il estime néanmoins après-coup qu'un suivi serait opportun, cette démarche ne devrait à notre avis résulter que de son propre choix."
Entendue aux débats de première instance, la Dresse F._ a expliqué que X._ présentait tant un risque de récidive élevé qu'une dangerosité en état d'alcoolisation. Pour diminuer le risque de récidive, elle considérait qu'aucune mesure imposée n'était adaptée, car il était, selon elle, impossible d'interdire à quelqu'un de boire, tout en admettant que, lorsque le prénommé avait consommé, il était dangereux. Cette dangerosité était suffisante pour empêcher l'intéressé de boire et nécessitait une mesure. D'une manière générale, la Dresse F._ a exposé que l'on ne pouvait pas traiter quelqu'un qui ne le souhaitait pas et qu'un traitement psychothérapeutique non volontaire n'était pas utile. Elle a en outre affirmé que l'on pouvait "traiter une dépendance, mais pas la consommation aiguë" et que l'on ne pouvait pas empêcher quelqu'un de boire. Interpellée quant à l'indication d'un traitement ambulatoire, elle a relevé ce qui suit :
"Je suis empruntée car je suis d'accord que le risque de récidive est élevé. Il y a un déni massif entre ses actes et la consommation. Il est difficile d'empêcher les gens de consommer des substances. Au moment des faits, [l'expertisé] était suffisamment dangereux pour nécessiter une mesure. S'il consomme de la cocaïne et de l'alcool, il peut être qualifié de dangereux au point de devoir prendre des mesures pour l'empêcher de consommer. [...]
Je pense qu'il est suffisamment dangereux pour qu'on l'empêche de boire. Si le traitement institutionnel signifie de l'enfermer pour l'empêcher de boire, je le recommande. [...] Je pense qu'une mesure avec un contrôle d'alcool peut être utile.
[...] [L'expertisé] ne fait pas le lien entre sa consommation et sa violence dans la mesure où il n'explique pas cette dernière par sa consommation."
B.d. Le 19 décembre 2016, le Service de médecine et psychiatrie pénitentiaires (ci-après : SMPP) a déposé un rapport, dont il ressort que X._ est suivi régulièrement par ce service depuis le début de son incarcération, soit le 19 février 2016, et qu'il a, à sa demande, bénéficié d'un premier entretien psychiatrique le 14 mars suivant, cet entretien ayant été suivi d'une dizaine d'autres jusqu'au 13 décembre 2016. Le 19 mai 2017, le SMPP a établi un autre rapport, dont il ressort que le prénommé est toujours suivi régulièrement par ce service. A ce jour, il ne présente pas de trouble psychiatrique et ne nécessite aucun traitement psychotrope. Il a été vu une quinzaine de fois à sa demande, le dernier entretien remontant au 11 mai 2017. Il adhère à la prise en charge psychiatrique qui lui est offerte et projète de la poursuivre après sa détention. Selon un rapport complémentaire du 29 juin 2017, X._ "se présente régulièrement à ses entretiens et aborde sans réticence ses problématiques psychiques et délictuelles, notamment celles en lien avec la violence conjugale", et il "semble prendre conscience progressivement de la gravité des actes pour lesquels il est incarcéré". Il a concrétisé ses projets de traitement après sa détention en prenant contact avec un centre spécialisé dans la prévention de la violence domestique, soit le Centre G._, à H._. A cette fin, il s'est prêté à un entretien d'accueil, le 23 février 2017, ainsi qu'à deux entretiens d'évaluation, les 9 et 30 mars suivants, en s'impliquant de façon active dans la démarche.
C.
X._ forme un recours en matière pénale au Tribunal fédéral contre le jugement du 6 juillet 2017, en concluant, avec suite de frais et dépens, à sa réforme en ce sens qu'il est libéré du chef de prévention de tentative de meurtre et qu'il est condamné, pour lésions corporelles simples qualifiées, voies de fait qualifiées, menaces qualifiées, contrainte, empêchement d'accomplir un acte officiel, infraction et contravention à la LStup, à une peine privative de liberté de 20 mois, sous déduction de 387 jours de détention provisoire, ainsi qu'à une amende de 500 francs. Il sollicite par ailleurs le bénéfice de l'assistance judiciaire.
Considérant en droit :
1.
Le recourant reproche à la cour cantonale d'avoir considéré que son grief concernant sa condamnation pour tentative de meurtre avait été présenté tardivement.
1.1. L'art. 399 CPP, qui régit la déclaration d'appel, prévoit à son alinéa 3 que celle-ci doit indiquer si le jugement est attaqué dans son ensemble ou seulement sur certaines parties. Selon l'art. 399 al. 4 CPP, quiconque attaque seulement certaines parties du jugement est tenu d'indiquer dans la déclaration d'appel, de manière définitive, sur quelles parties porte l'appel. L'appel peut ainsi notamment porter sur la question de la culpabilité, le cas échéant en rapport avec chacun des actes (let. a), sur la quotité de la peine (let. b) ou sur les mesures qui ont été ordonnées (let. c). Conformément à l'art. 404 al. 1 CPP, la juridiction d'appel n'examine que les points attaqués du jugement de première instance. Elle jouit en revanche d'un plein pouvoir d'examen sur tous les points attaqués du jugement, qu'elle revoit librement (cf. art. 398 al. 2 CPP).
La limitation de l'appel repose sur un souci d'économie du procès et d'allègement de la procédure. Après que l'objet de l'appel a été fixé dans la déclaration d'appel, la portée de celui-ci ne peut plus être élargie (Message relatif à l'unification du droit de la procédure pénale du 21 décembre 2005, FF 2006 p. 1299; SCHMID/JOSITSCH, Schweizerische Strafprozessordnung, Praxiskommentar, 3e éd. 2018, n° 16 ad art. 399 CPP; MOREILLON/PAREIN-REYMOND, Petit commentaire, Code de procédure pénale, 2e éd. 2017, n° 33 ad art. 399 CPP; LUZIUS EUGSTER, in Basler Kommentar zur Schweizerische Strafprozessordnung - Jugendstrafprozessordnung, 2e éd. 2014, n° 6 ad art. 399 CPP; NIKLAUS OBERHOLZER, Grundzüge des Strafprozessrechts, 3e éd. 2012, n° 1615; MARLÈNE KISTLER VIANIN, in Commentaire romand, Code de procédure pénale suisse, 2011, no 21 ad art. 399 CPP).
1.2. En l'espèce, dans sa déclaration motivée du 1er mars 2017, le recourant a indiqué qu'il entendait limiter son appel aux chiffres II et V du dispositif du jugement de première instance, en formulant des griefs de nature de ceux évoqués à l'art. 398 al. 3 let. a et c CPP. Dans la motivation de sa déclaration d'appel, le recourant a consacré des développements d'une part à la question de la mesure thérapeutique institutionnelle ordonnée et, d'autre part, à la quotité de la peine prononcée. Enfin, dans les conclusions prises au pied de son mémoire d'appel, le recourant a conclu principalement à la réforme du jugement de première instance en ce sens qu'il est condamné, pour tentative de meurtre, lésions corporelles simples qualifiées, voies de fait qualifiées, menaces qualifiées, contrainte, empêchement d'accomplir un acte officiel, infraction et contravention à la LStup, à une peine privative de liberté de 20 mois. Subsidiairement, il a conclu à sa réforme en ce sens qu'il est condamné, pour tentative de meurtre, lésions corporelles simples qualifiées, voies de fait qualifiées, menaces qualifiées, contrainte, empêchement d'accomplir un acte officiel, infraction et contravention à la LStup, à une peine privative de liberté de 20 mois, peine suspendue en faveur d'un traitement ambulatoire au sens de l'art. 63 CP. Plus subsidiairement, il a conclu à son annulation et au renvoi de la cause à l'autorité de première instance.
Il découle de ce qui précède que, dans sa déclaration d'appel, le recourant n'a pas contesté l'établissement des faits relatifs à la tentative de meurtre, ni sa condamnation pour l'une ou l'autre des infractions retenues à son encontre par jugement du 26 janvier 2017.
Il ressort enfin du jugement attaqué que le recourant a, pour la première fois lors de l'audience d'appel du 6 juillet 2017, avant la clôture de la procédure probatoire, annoncé qu'il modifiait ses conclusions en ce sens qu'il devait être acquitté du chef de prévention de tentative de meurtre et condamné, à la place, pour tentative de mise en danger de la vie d'autrui.
1.3. L'autorité précédente a considéré que la "conclusion nouvelle" présentée par le recourant lors de l'audience du 6 juillet 2017 paraissait tardive. Elle a ajouté, "par surabondance", que le raisonnement des premiers juges qui conduisait à retenir que l'intéressé avait envisagé la mort de l'intimée et avait accepté celle-ci pour le cas où elle se produirait était "convaincant" et qu'il "y [avait] lieu d'y renvoyer". Pour le reste, la cour cantonale n'a pas examiné les faits constitutifs de l'infraction de tentative de meurtre, non plus que l'application des dispositions légales concernées.
Malgré l'emploi du terme "paraît" concernant la tardiveté de la conclusion nouvelle du recourant - terme supposant une incertitude pour laquelle il n'y a pas de place en l'occurrence -, on comprend du jugement attaqué que la cour cantonale a estimé que l'intéressé était forclos à étendre, au cours de l'audience du 6 juillet 2017, la portée de son appel. Elle n'est pas entrée en matière sur son grief relatif à l'infraction de tentative de meurtre - non plus que sur une éventuelle requalification en tentative de mise en danger de la vie d'autrui -, le renvoi au jugement de première instance s'avérant superfétatoire sur ce point. Le recourant admet d'ailleurs que son grief a été jugé irrecevable par l'autorité précédente.
1.4. Devant le Tribunal fédéral, le recourant prétend que sa déclaration d'appel motivée aurait "implicitement" porté sur la question de sa culpabilité pour l'infraction de tentative de meurtre. Il soutient également que puisque le dispositif du jugement de première instance traitait dans le même chiffre les infractions retenues et la peine prononcée, la contestation de la quotité de la peine impliquait une remise en cause de l'état de fait et de la réalisation des infractions en question. Cette argumentation tombe à faux. En effet, compte tenu des conclusions prises par le recourant dans sa déclaration d'appel motivée, des griefs soulevés et de leur motivation (cf. consid. 1.2 supra), aucun doute n'est permis quant à la portée qu'entendait donner celui-ci à son appel. Aucune remise en cause implicite de la condamnation pour tentative de meurtre ne peut y être décelée, ce qui explique d'ailleurs que le défenseur du recourant eût, au cours de l'audience d'appel, annoncé "modifier" les conclusions de son client. Par ailleurs, l'art. 399 al. 4 CPP distingue la contestation de la question de la culpabilité (let. a) de celle de la quotité de la peine (let. b). On ne saurait dès lors considérer qu'une remise en cause de ce second point impliquerait l'étendue de l'appel aux faits et infractions retenus, ce qui viderait l'art. 399 al. 4 let. a CPP de toute substance. La manière dont l'énumération des infractions retenues et la quotité de la peine infligée sont réparties dans le dispositif du jugement de première instance ne change rien à ces considérations.
1.5. Le recourant soutient encore que l'art. 404 al. 2 CPP devrait permettre, "par analogie", à tout prévenu de modifier ses conclusions en sa faveur jusqu'à la clôture de l'instruction.
Aux termes de l'art. 404 CPP, la juridiction d'appel n'examine que les points attaqués du jugement de première instance (al. 1). Elle peut également examiner en faveur du prévenu des points du jugement qui ne sont pas attaqués, afin de prévenir des décisions illégales ou inéquitables (al. 2). L'art. 404 al. 2 CPP doit être appliqué avec retenue, sous peine de vider de sa substance la portée des art. 399 al. 3 et 4 ainsi que 404 al. 1 CPP (cf. arrêts 6B_827/2017 du 25 janvier 2018 consid. 1.1; 6B_454/2016 du 20 avril 2017 consid. 6.1). L'autorité d'appel n'a ainsi pas à rechercher si des erreurs dans l'application du droit ont été commises par le juge précédant ou à examiner des questions juridiques qui ne se posent pas à elle. Elle n'interviendra qu'en cas d'erreur manifeste, par exemple une violation grossière du droit, matériel ou de procédure (arrêt 6B_454/2016 précité consid. 6.1).
En l'espèce, la cour cantonale n'a nullement entendu faire application de l'art. 404 al. 2 CPP. Elle n'a pas davantage évoqué une éventuelle erreur manifeste dans le jugement de première instance, auquel elle a - par surabondance - renvoyé s'agissant de l'infraction de tentative de meurtre. Le recourant ne peut dès lors rien tirer de cette disposition. La portée qu'il prête à celle-ci reviendrait au demeurant à rendre lettre morte l'art. 399 al. 4 CPP lorsque le prévenu fait appel d'une condamnation.
1.6. Compte tenu de ce qui précède, le recourant n'a pas valablement contesté sa condamnation pour tentative de meurtre devant l'autorité précédente, laquelle n'a pas examiné de grief à cet égard. Partant, les griefs de l'intéressé portant sur l'établissement des faits et l'application de l'art. 111 CP sont irrecevables, faute d'épuisement des instances cantonales sur ce point (cf. art. 80 al. 1 LTF).
Son grief de violation du droit d'être entendu, portant sur la motivation supposée de la cour cantonale à propos de l'infraction de tentative de meurtre, est sans objet, l'autorité précédente n'ayant pas spécifiquement examiné les faits ni le droit y relatifs.
2.
Le recourant reproche à la cour cantonale d'avoir prononcé une mesure thérapeutique institutionnelle à titre de l'art. 59 CP.
2.1. Aux termes de l'art. 59 al. 1 CP, lorsque l'auteur souffre d'un grave trouble mental, le juge peut ordonner un traitement institutionnel si l'auteur a commis un crime ou un délit en relation avec ce trouble (let. a) et s'il est à prévoir que cette mesure le détournera de nouvelles infractions en relation avec ce trouble (let. b).
Selon la jurisprudence, la condition posée par l'art. 59 al. 1 let. b CP, soit qu'il soit à prévoir que la mesure détournera l'intéressé de nouvelles infractions en relation avec son trouble, est réalisée lorsque, au moment de la décision, il est suffisamment vraisemblable qu'un traitement institutionnel entraînera dans les cinq ans de sa durée normale une réduction nette du risque de récidive (ATF 140 IV 1 consid. 3.2.4 p. 9; 134 IV 315 consid. 3.4.1 p. 321 s.). La possibilité vague d'une diminution du risque ou l'espoir d'une diminution seulement minimale de ce risque ne sont en revanche pas suffisants (cf. ATF 140 IV 1 consid. 3.2.4 p. 8 s.; 134 IV 315 consid. 3.4.1 p. 321). L'exigence d'un tel pronostic ne signifie pas qu'un condamné souffrant de trouble mental ne pourra pas recevoir l'assistance nécessaire, mais seulement que la mesure préconisée par l'art. 59 CP n'est pas adéquate, tout au moins dans l'état des choses, au moment où la décision est rendue (arrêt 6B_1348/2017 du 22 janvier 2018 consid. 1.1.2).
Pour ordonner une mesure à titre de l'art. 59 CP, le juge doit se fonder sur une expertise. Celle-ci doit se déterminer sur la nécessité et les chances de succès d'un traitement, la vraisemblance que l'auteur commette d'autres infractions et la nature de celles-ci, ainsi que sur les possibilités de faire exécuter la mesure (art. 56 al. 3 CP). Dans ce cadre, l'expert devra se prononcer, en particulier, sur la forme du traitement et la mesure qui lui semble la plus appropriée (cf. sous l'ancien droit : ATF 101 IV 124 consid. 3b p. 128; arrêts 6B_28/2017 du 23 janvier 2018 consid. 3.3.3; 6B_133/2017 du 12 janvier 2018 consid. 1.2; 6B_371/2016 du 10 février 2017 consid. 1.1.4).
Selon la jurisprudence, le juge apprécie en principe librement une expertise et n'est pas lié par les conclusions de l'expert. Toutefois, il ne peut s'en écarter que lorsque des circonstances ou des indices importants et bien établis en ébranlent sérieusement la crédibilité; il est alors tenu de motiver sa décision de ne pas suivre le rapport d'expertise. Inversement, si les conclusions d'une expertise judiciaire apparaissent douteuses sur des points essentiels, le juge doit recueillir des preuves complémentaires pour tenter de dissiper ses doutes. A défaut, en se fondant sur une expertise non concluante, il pourrait commettre une appréciation arbitraire des preuves et violer l'art. 9 Cst. (ATF 142 IV 49 consid. 2.1.3 p. 53). L'expert se prononce ainsi sur l'ensemble des conditions de fait de la mesure, étant gardé à l'esprit qu'il incombe au juge de déterminer si une mesure doit être ordonnée et, cas échéant, laquelle. En effet, ce n'est pas à l'expert, mais bien au juge qu'il appartient de résoudre les questions juridiques qui se posent, dans le complexe de faits faisant l'objet de l'expertise (arrêts 6B_1348/2017 précité consid. 1.1.3; 6B_346/2016 du 31 janvier 2017 consid. 3.2 et les références citées).
2.2. La cour cantonale a exposé que les experts avaient posé, à propos du recourant, le diagnostic de "troubles mentaux et troubles du comportement liés à l'utilisation de substances psychoactives multiples (alcool, cocaïne), intoxication aiguë, sans complication". Ils avaient précisé qu'il s'agissait d'un état transitoire consécutif à la prise d'alcool ou d'une autre substance psychoactive, caractérisé par des perturbations de la conscience, des fonctions cognitives, de la perception, de l'affect et du comportement. Ils n'avaient pas retenu d'autre diagnostic psychiatrique. Le Dr I._, qui suivait le recourant en détention, avait indiqué que ce dernier ne présentait pas de troubles psychiatriques patents et ne nécessitait pas de soins médicaux ni de médicaments. Entendue à l'audience de première instance, la Dresse F._, co-experte, avait qualifié le trouble mental du comportement dont souffrait le recourant de "grave" et avait précisé que ce trouble était présent au moment des faits. Elle avait ajouté qu'il existait un déni massif, chez l'intéressé, du lien entre ses actes et sa consommation de substances. Dans leur complément d'expertise, les experts avaient expliqué pour quels motifs ils avaient retenu que la consommation d'alcool et de cocaïne devait être qualifiée d'aiguë, soit principalement les déclarations du recourant et ses précédentes condamnations.
S'il était établi que le recourant était alcoolisé dans la nuit du 7 au 8 février 2016 ainsi que lors des événements des 1er novembre 2014, 16 décembre 2014 et 11 mai 2008, un doute subsistait concernant les autres épisodes de violence. Le recourant avait affirmé que les disputes avaient lieu lorsque les concubins étaient sous l'influence de l'alcool. Il ressortait néanmoins des déclarations de l'intimée que, lors des événements de 2015 à C._, ils n'avaient pas bu d'alcool ni consommé de stupéfiants. Celle-ci avait par ailleurs déclaré que, lors des disputes, ils étaient parfois sobres, sans préciser si elle se référait aux épisodes de violence physique. Ainsi, selon l'autorité précédente, l'alcool jouait un rôle dans les disputes du couple et la violence du recourant. Comme l'avaient retenu les experts, sa consommation d'alcool et de produits stupéfiants s'était avérée problématique à plusieurs reprises. On ne pouvait cependant imputer avec certitude à cette consommation tous les passages à l'acte du recourant. Au bénéfice du doute et compte tenu des avis des experts et du psychiatre suivant l'intéressé en détention, il convenait d'admettre que l'alcool jouait un rôle essentiel dans les agissements du recourant.
Selon la cour cantonale, il était établi que le recourant souffrait d'un trouble mental grave, en lien avec les infractions commises. Certes, ce trouble mental était transitoire. Néanmoins, comme l'intéressé ne mettait pas en lien sa violence et sa consommation, ce trouble était toujours "sous-jacent". En effet, l'alcool avait un effet désinhibiteur particulier chez lui, dès lors qu'il libérait et péjorait sa tendance à se défendre d'un vécu de menace par des défenses caractérielles, soit par un recours à la violence. Le risque de récidive était élevé et s'étendait au-delà de sa relation de couple avec l'intimée. Un traitement, qui l'empêcherait de consommer de l'alcool, était recommandé. Certes, les experts avaient commencé par affirmer qu'aucune mesure ne s'imposait. Cela étant, il ressortait des explications fournies en audience de première instance qu'il s'agissait tout au plus d'une pétition de principe, selon laquelle aucun traitement psychiatrique n'était possible sans adhésion du patient. L'impulsivité et la dangerosité du recourant étaient liées à son grave trouble mental. Ces aspects commandaient le prononcé d'une mesure, tant dans un but de protection de la société que de traitement du recourant. Par ailleurs, même si ce dernier s'était soumis, depuis le 14 mars 2016, à un suivi psychothérapeutique en détention et qu'il s'efforçait de travailler sur ses problématiques conjugales et délictuelles, une base volontaire n'était à l'évidence pas suffisante compte tenu de son déni et de la gravité de ses actes.
Les experts n'avaient pas affirmé qu'un traitement psychothérapeutique permettrait à lui seul au recourant de sortir du déni dans lequel il se murait ou de faire le lien entre sa consommation d'alcool et sa violence de manière à circonscrire le risque de récidive. Lors de l'audience d'appel, le recourant avait persisté dans un déni au moins partiel, en indiquant qu'il n'arrivait pas à "expliquer cette violence" et qu'il s'agissait pour lui d'un "problème de couple". Il avait ensuite fait preuve d'un déni massif, en invoquant la légitime défense. Non seulement le recourant minimisait la violence de ses réactions, mais il imputait encore sa violence à l'intimée, en indiquant s'être contenté de riposter et de la maîtriser. Ces propos témoignaient de ce que les séances suivies en détention et les trois entretiens d'accueil et d'évaluation auprès du Centre G._ n'avaient pas eu d'effet notable, même si les démarches thérapeutiques accomplies étaient louables. On ne discernait, chez le recourant, aucune prise de conscience de la gravité de ses actes, contrairement à l'avis exposé le 29 juin 2017 par le Dr I._. Le recourant apparaissait donc peu accessible à une thérapie ambulatoire. A cet égard, la co-experte s'était contentée de relever, à l'audience de première instance, qu'un traitement ambulatoire avec un contrôle d'alcool pouvait "être utile". Elle avait encore précisé que le recourant n'était pas accessible à une thérapie fondée sur la violence, même si cela pouvait l'aider. Or, même s'il était possible, dans une certaine mesure, d'assurer par un traitement ambulatoire un contrôle de l'abstinence à l'alcool, celle-ci ne pouvait être garantie que dans le cadre contenant et sécurisé d'un établissement d'exécution des mesures ou un établissement psychiatrique. C'était ce qu'avait admis la co-experte à l'audience de première instance, en affirmant que le recourant était suffisamment dangereux pour qu'on l'empêche de boire et que, "si le traitement institutionnel signifi [ait] l'enfermer pour l'empêcher de boire", elle le recommandait. Pour la cour cantonale, au vu des actes très graves déjà commis et du risque élevé de récidive des mêmes infractions, il était essentiel, d'une part, de s'assurer que le recourant ne puisse pas présenter à nouveau d'intoxication aiguë à l'alcool et à la cocaïne et, d'autre part, qu'il puisse continuer le traitement psychothérapeutique qu'il avait commencé sur une base volontaire en détention, afin qu'il parvienne notamment à faire le lien entre sa violence et ses consommations. Par ailleurs, une psychothérapie dans un établissement spécialisé pouvait souvent être mise en oeuvre de manière plus adéquate qu'en détention. La mesure moins incisive qui aurait consisté à prononcer un traitement ambulatoire au lieu d'un placement institutionnel ne présentait pas les garanties suffisantes au vu du risque élevé de récidive et de la dangerosité du recourant. Elle aurait été, selon l'autorité précédente, prématurée et insuffisante.
2.3. En l'espèce, on ne voit pas, à la lecture du jugement attaqué, que le recourant aurait souffert, au moment de la décision de la cour cantonale, d'un grave trouble mental. Les experts ont certes fait état d'une "intoxication aiguë à l'alcool et à la cocaïne" au moment des faits, sans que l'on ne perçoive si cet élément relèverait d'un trouble permanent, subsistant au-delà de l'effet des substances psychotropes ingérées. Il apparaît à cet égard que les experts n'ont, dans leur rapport du 16 juin 2016, diagnostiqué aucun "trouble psychiatrique au sens de la CIM-10" (pièce 44 du dossier cantonal, p. 8). On ignore également sur quelles bases l'autorité précédente a fondé sa constatation selon laquelle un trouble mental serait toujours "sous-jacent". Enfin, la cour cantonale a retenu, sur la base des déclarations de la co-experte, qu'il était recommandé, afin d'éviter une nouvelle récidive, d'"enfermer" le recourant afin de "l'empêcher de boire". L'autorité précédente est cependant restée muette s'agissant des chances de succès de la mesure et en particulier de la perspective de voir le risque de récidive diminuer nettement dans les cinq ans. Or, il ressort de l'état de fait que, selon les experts, seul un traitement psychothérapeutique volontaire serait à même de réduire le risque de récidive.
En définitive, la motivation de l'autorité précédente ne permet pas d'examiner si les conditions au prononcé d'une mesure thérapeutique institutionnelle au sens de l'art. 59 CP étaient remplies. Le jugement attaqué doit donc être annulé et la cause renvoyée à l'autorité cantonale afin qu'elle complète l'état de fait s'agissant de l'existence d'un trouble mental chez le recourant ainsi que des perspectives de succès d'une mesure thérapeutique institutionnelle et qu'elle examine à nouveau si une mesure au sens de l'art. 59 CP peut être prononcée (cf. art. 112 al. 3 LTF).
3.
Le recourant conteste la quotité de la peine qui lui a été infligée.
3.1. Le juge fixe la quotité de la peine d'après la culpabilité de l'auteur (art. 47 CP). Elle doit être évaluée en fonction de tous les éléments objectifs pertinents, qui ont trait à l'acte lui-même, à savoir notamment la gravité de la lésion, le caractère répréhensible de l'acte et son mode d'exécution. Du point de vue subjectif, sont pris en compte l'intensité de la volonté délictuelle ainsi que les motivations et les buts de l'auteur. A ces composantes de la culpabilité, il faut ajouter les facteurs liés à l'auteur lui-même, à savoir les antécédents, la réputation, la situation personnelle, la vulnérabilité face à la peine et le comportement après l'acte et au cours de la procédure pénale (ATF 141 IV 61 consid. 6.1.1 p. 66 s.).
Pour fixer la peine, le juge dispose d'un large pouvoir d'appréciation. Le Tribunal fédéral n'intervient que lorsque l'autorité cantonale a fixé une peine en dehors du cadre légal, si elle s'est fondée sur des critères étrangers à l'art. 47 CP, si des éléments d'appréciation importants n'ont pas été pris en compte ou, enfin, si la peine prononcée est exagérément sévère ou clémente au point de constituer un abus du pouvoir d'appréciation (ATF 136 IV 55 consid. 5.6 p. 61).
3.2. La cour cantonale a exposé que le recourant s'en était pris aux biens juridiquement protégés les plus importants, savoir la vie et l'intégrité corporelle. En outre, il avait agi essentiellement par jalousie, soit pour un motif égoïste et futile. Ses actes s'étaient aggravés jusqu'au 8 février 2016 et seule l'intervention de la police et son arrestation avaient mis fin à son activité délictueuse. Enferré dans le déni, le recourant n'avait montré aucune conscience de la gravité de son comportement, également à l'égard de son enfant, victime indirecte de la violence de son père à l'encontre de sa mère. De même, celui-ci n'avait manifesté aucun réel repentir, allant jusqu'à se présenter comme une victime, y compris lors de l'audience d'appel où il avait invoqué la légitime défense. Par le déni qu'ils révélaient, ces propos pondéraient en partie le relatif optimisme présenté par les médecins du SMPP dans leur rapport complémentaire du 29 juin 2017. De surcroît, les antécédents du recourant, en particulier en matière de violence conjugale, étaient significatifs. Outre d'autres infractions, ses actes de violence domestique avaient ainsi eu un caractère récurrent durant plusieurs années. Sa propension à ce type de violence était en outre mise à jour par le fait qu'il n'eût pas obtempéré aux injonctions des policiers lors de son interpellation et n'eût pas fait d'effort pour changer de comportement par le passé, ne fût-ce qu'en modérant sa consommation d'alcool et en renonçant aux stupéfiants. La consommation de stupéfiants récurrente du recourant témoignait de son irrespect de l'ordre légal hors de la sphère domestique également. Il en allait de même s'agissant des dispositions prises pour s'adonner à une culture de chanvre qui ne pouvait, au vu des investissements d'ores et déjà consentis, être pratiquée qu'à des fins lucratives. Il y avait aussi concours d'infractions.
L'autorité précédente a retenu la légère diminution de responsabilité du recourant. A décharge, elle a par ailleurs tenu compte d'une intégration sociale relativement bonne, illustrée par son activité professionnelle. Le comportement en détention de l'intéressé avait été adéquat et celui-ci faisait preuve d'application dans son travail en cuisine. De plus, il avait admis une part des faits incriminés, même s'il ne prenait pas conscience de son implication. A cela s'ajoutait la situation personnelle difficile du recourant, qui comprenait le contexte de sa relation avec l'intimée. Enfin, celui-ci consultait un psychologue en détention, sur une base volontaire. Il entretenait un contact soutenu avec les thérapeutes et disait se préoccuper de l'avenir de son fils. La cour cantonale a ainsi estimé qu'une peine privative de liberté de 66 mois aurait été indiquée avec une pleine responsabilité. La culpabilité du recourant était écrasante malgré les éléments à décharge. Une peine privative de liberté de 48 mois s'avérait ainsi adéquate.
3.3. L'argumentation du recourant est irrecevable dans la mesure où elle s'écarte de l'état de fait de la cour cantonale, par lequel le Tribunal fédéral est lié (cf. art. 105 al. 1 LTF). Il en va ainsi lorsque celui-ci prétend ne jamais avoir envisagé ni accepté l'idée de tuer l'intimée.
Pour le reste, en affirmant que l'intimée n'a finalement présenté "que des égratignures et des ecchymoses", que celle-ci a retiré ses plaintes et qu'elle aurait initié l'altercation du 8 février 2016 en lui assénant une claque, le recourant donne corps à la constatation de la cour cantonale, selon laquelle - malgré sa condamnation pour tentative de meurtre - il n'a pas pris conscience de la gravité de ses actes.
3.4. L'affirmation selon laquelle le recourant aurait subi "un choc" en étant arrêté ne trouve aucun appui dans le jugement attaqué. On ne voit pas, au demeurant, en quoi il s'agirait d'une circonstance atténuante. Par ailleurs, les désidératas de l'intimée ne sont pas pertinents s'agissant de la fixation de la peine. Il importe peu, par conséquent, que celle-ci souhaiterait - selon le recourant - que ce dernier soit libéré, ce qui ne ressort de toute manière pas du jugement attaqué.
Pour le reste, la cour cantonale a tenu compte des démarches entreprises par le recourant, dans le cadre de sa détention, afin de bénéficier d'un suivi thérapeutique. Celui-ci ne démontre pas en quoi il aurait convenu d'accorder davantage de poids à cet élément. Par ailleurs, contrairement à ce que soutient le recourant, les "coups" qu'il a reçus au cours de l'altercation du 8 février 2016 ne sauraient être considérés comme une "part de peine", dès lors que, s'agissant de ces événements, il n'est pas reproché à celui-ci d'avoir riposté à d'éventuelles attaques de l'intimée, mais d'avoir tenté de la tuer alors même qu'elle ne présentait aucune menace pour lui. On ne voit pas, pour le surplus, que la cour cantonale aurait ignoré le retrait des plaintes déposées par l'intimée ou l'existence de l'enfant du recourant, ces éléments ressortant expressément du jugement attaqué.
3.5. Le recourant se prévaut enfin d'un jugement dans lequel un prévenu aurait été condamné pour avoir serré un tiers au cou, afin d'affirmer que sa peine serait disproportionnée.
Cette argumentation tombe à faux. En effet, en matière de fixation de la peine, le Tribunal fédéral a déjà eu à de nombreuses reprises l'occasion d'indiquer que toute comparaison avec d'autres affaires était délicate, vu les nombreux paramètres entrant en ligne de compte. Les disparités en cette matière s'expliquent ainsi normalement par le principe de l'individualisation des peines, voulu par le législateur; elles ne suffisent pas en elles-mêmes pour conclure à un abus du pouvoir d'appréciation (ATF 141 IV 61 consid. 6.3.2 p. 69).
3.6. Compte tenu de ce qui précède, la cour cantonale n'a pas violé le droit fédéral en infligeant au recourant une peine privative de liberté de 48 mois. Le grief doit être rejeté dans la mesure où il est recevable.
4.
Au vu de ce qui précède, le recours doit être partiellement admis (cf. consid. 2.3 supra). Le recourant, qui n'obtient que partiellement gain de cause, supportera une partie des frais judiciaires (art. 66 al. 1 LTF). Il peut prétendre à des dépens réduits, à la charge du canton de Vaud (art. 68 al. 1 LTF). La demande d'assistance judiciaire est sans objet dans la mesure où le recourant a droit à des dépens; elle doit être rejetée pour le reste, dès lors que le recours était dénué de chances de succès s'agissant des aspects sur lesquels celui-ci a succombé (art. 64 al. 1 LTF). Les frais judiciaires mis à la charge du recourant seront fixés en tenant compte de sa situation économique, laquelle n'apparaît pas favorable (art. 65 al. 2 LTF). Dès lors que l'admission du recours porte sur une insuffisance de l'état de fait, il peut être procédé au renvoi sans ordonner préalablement un échange d'écritures (cf. ATF 133 IV 293 consid. 3.4.2 p. 296). L'intimée, qui n'a pas été invitée à se déterminer, ne saurait prétendre à des dépens.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est partiellement admis, le jugement attaqué est annulé et la cause est renvoyée à l'autorité cantonale pour nouvelle décision. Pour le surplus, le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée dans la mesure où elle n'est pas sans objet.
3.
Une partie des frais judiciaires, arrêtée à 800 fr., est mise à la charge du recourant.
4.
Le canton de Vaud versera au recourant une indemnité de 1'500 fr. à titre de dépens réduits pour la procédure devant le Tribunal fédéral.
5.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 17 avril 2018
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
Le Greffier : Graa